hyperbole-0.5.0: Interactive HTML apps using type-safe serverside Haskell
Safe HaskellNone
LanguageGHC2021

Web.Hyperbole.Effect.OAuth2

Synopsis

Documentation

data OAuth2 (a :: Type -> Type) b where Source #

Constructors

AuthUrl :: forall (a :: Type -> Type). URI -> Scopes -> OAuth2 a URI 
ValidateCode :: forall (a :: Type -> Type). OAuth2 a (Token Code) 
ExchangeAuth :: forall (a :: Type -> Type). Token Code -> OAuth2 a Authenticated 
ExchangeRefresh :: forall (a :: Type -> Type). Token Refresh -> OAuth2 a Authenticated 

Instances

Instances details
type DispatchOf OAuth2 Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

authUrl :: forall (es :: [Effect]). OAuth2 :> es => URI -> Scopes -> Eff es URI Source #

validateCode :: forall (es :: [Effect]). OAuth2 :> es => Eff es (Token Code) Source #

exchangeAuth :: forall (es :: [Effect]). OAuth2 :> es => Token Code -> Eff es Authenticated Source #

runOAuth2 :: forall (es :: [Effect]) a. (GenRandom :> es, IOE :> es, Hyperbole :> es) => Config -> Manager -> Eff (OAuth2 ': es) a -> Eff es a Source #

getConfigEnv :: forall (es :: [Effect]). Environment :> es => Eff es Config Source #

read oauth config from env. This is not required, you can obtain these secrets another way and configure the app however you please. Just pass the results into runOAuth2 in your app

newtype Scopes Source #

Constructors

Scopes [Text] 

Instances

Instances details
FromJSON Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToJSON Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

IsString Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Methods

fromString :: String -> Scopes #

Generic Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Associated Types

type Rep Scopes 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Scopes = D1 ('MetaData "Scopes" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'True) (C1 ('MetaCons "Scopes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))

Methods

from :: Scopes -> Rep Scopes x #

to :: Rep Scopes x -> Scopes #

Show Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

FromParam Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToParam Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Scopes Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Scopes = D1 ('MetaData "Scopes" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'True) (C1 ('MetaCons "Scopes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))

data AuthFlow Source #

Constructors

AuthFlow 

Fields

Instances

Instances details
Generic AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Associated Types

type Rep AuthFlow 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep AuthFlow = D1 ('MetaData "AuthFlow" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "AuthFlow" 'PrefixI 'True) (S1 ('MetaSel ('Just "redirect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 URI) :*: S1 ('MetaSel ('Just "state") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Token State))))

Methods

from :: AuthFlow -> Rep AuthFlow x #

to :: Rep AuthFlow x -> AuthFlow #

Default AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Methods

def :: AuthFlow #

FromEncoded AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToEncoded AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Session AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep AuthFlow Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep AuthFlow = D1 ('MetaData "AuthFlow" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "AuthFlow" 'PrefixI 'True) (S1 ('MetaSel ('Just "redirect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 URI) :*: S1 ('MetaSel ('Just "state") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Token State))))

data TokenType Source #

Constructors

Bearer 

Instances

Instances details
FromJSON TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToJSON TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Generic TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Associated Types

type Rep TokenType 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep TokenType = D1 ('MetaData "TokenType" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "Bearer" 'PrefixI 'False) (U1 :: Type -> Type))
Read TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Show TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

FromParam TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToParam TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep TokenType Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep TokenType = D1 ('MetaData "TokenType" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "Bearer" 'PrefixI 'False) (U1 :: Type -> Type))

data Authenticated Source #

Instances

Instances details
FromJSON Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToJSON Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Generic Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Associated Types

type Rep Authenticated 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Authenticated = D1 ('MetaData "Authenticated" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "Authenticated" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tokenType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TokenType) :*: S1 ('MetaSel ('Just "expiresIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "scope") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Scopes)) :*: (S1 ('MetaSel ('Just "accessToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Token Access)) :*: S1 ('MetaSel ('Just "refreshToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Token Refresh)))))))
Show Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

FromEncoded Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToEncoded Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

FromParam Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

ToParam Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

Session Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Authenticated Source # 
Instance details

Defined in Web.Hyperbole.Effect.OAuth2

type Rep Authenticated = D1 ('MetaData "Authenticated" "Web.Hyperbole.Effect.OAuth2" "hyperbole-0.5.0-BYuNJFea9uW7InKipgZBzY" 'False) (C1 ('MetaCons "Authenticated" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tokenType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TokenType) :*: S1 ('MetaSel ('Just "expiresIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "scope") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Scopes)) :*: (S1 ('MetaSel ('Just "accessToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Token Access)) :*: S1 ('MetaSel ('Just "refreshToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Token Refresh)))))))

newtype Token (a :: k) Source #

Constructors

Token 

Fields

Instances

Instances details
FromJSON (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

ToJSON (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

Read (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

Show (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

Methods

showsPrec :: Int -> Token a -> ShowS #

show :: Token a -> String #

showList :: [Token a] -> ShowS #

Eq (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

Methods

(==) :: Token a -> Token a -> Bool #

(/=) :: Token a -> Token a -> Bool #

FromParam (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom

ToParam (Token a) Source # 
Instance details

Defined in Web.Hyperbole.Effect.GenRandom