summaryrefslogtreecommitdiff
path: root/fig-frontend-client/src/Auth.purs
blob: 2a536299accbd6eeba2ec3c2a7690bae67951cd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module Auth where

import Prelude

import Config (authRedirectURL, clientID)
import Data.Array (fold)
import Data.Maybe (Maybe(..))
import Data.Tuple (Tuple(..))
import Effect (Effect)
import Effect.Class (class MonadEffect, liftEffect)

foreign import _startTwitchAuth :: String -> String -> Effect Unit
startTwitchAuth :: forall m. MonadEffect m => m Unit
startTwitchAuth = liftEffect $ _startTwitchAuth clientID authRedirectURL

type AuthInfo = Tuple String String
foreign import _getToken :: forall a. (a -> Maybe a) -> Maybe a -> (a -> a -> Tuple a a) -> Effect (Maybe (Tuple String String))
getToken :: forall m. MonadEffect m => m (Maybe AuthInfo)
getToken = liftEffect $ _getToken Just Nothing Tuple

authHeader :: AuthInfo -> String
authHeader (Tuple t n) =
  fold
  [ "FIG-TWITCH token=\""
  , t
  , "\", nonce=\""
  , n
  , "\""
  ]