hoauth2-2.6.0: Haskell OAuth2 authentication client
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.OAuth2.Experiment.Types

Synopsis

Grant Type

Response Type value

class ToResponseTypeValue (a :: GrantTypeFlow) where Source #

Methods

toResponseTypeValue :: IsString b => b Source #

Instances

Instances details
ToResponseTypeValue 'AuthorizationCode Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toResponseTypeValue :: IsString b => b Source #

toResponseTypeParam :: forall a b req. (ToResponseTypeValue a, IsString b) => req a -> Map b b Source #

Grant Type value

data GrantTypeValue Source #

Grant type query parameter has association with GrantTypeFlow but not completely strict.

e.g. Both AuthorizationCode and ResourceOwnerPassword flow could support refresh token flow.

Instances

Instances details
Show GrantTypeValue Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

showsPrec :: Int -> GrantTypeValue -> ShowS

show :: GrantTypeValue -> String

showList :: [GrantTypeValue] -> ShowS

Eq GrantTypeValue Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

ToQueryParam GrantTypeValue Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: GrantTypeValue -> Map Text Text Source #

Scope

newtype Scope Source #

Constructors

Scope 

Fields

Instances

Instances details
IsString Scope Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> Scope

Show Scope Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

showsPrec :: Int -> Scope -> ShowS

show :: Scope -> String

showList :: [Scope] -> ShowS

Eq Scope Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: Scope -> Scope -> Bool

(/=) :: Scope -> Scope -> Bool

Ord Scope Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

compare :: Scope -> Scope -> Ordering

(<) :: Scope -> Scope -> Bool

(<=) :: Scope -> Scope -> Bool

(>) :: Scope -> Scope -> Bool

(>=) :: Scope -> Scope -> Bool

max :: Scope -> Scope -> Scope

min :: Scope -> Scope -> Scope

ToQueryParam (Set Scope) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Set Scope -> Map Text Text Source #

Credentials

newtype ClientId Source #

Constructors

ClientId 

Fields

Instances

Instances details
IsString ClientId Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> ClientId

Show ClientId Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

showsPrec :: Int -> ClientId -> ShowS

show :: ClientId -> String

showList :: [ClientId] -> ShowS

Eq ClientId Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: ClientId -> ClientId -> Bool

(/=) :: ClientId -> ClientId -> Bool

ToQueryParam ClientId Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ClientId -> Map Text Text Source #

newtype ClientSecret Source #

Constructors

ClientSecret 

Fields

Instances

Instances details
IsString ClientSecret Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> ClientSecret

Eq ClientSecret Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: ClientSecret -> ClientSecret -> Bool

(/=) :: ClientSecret -> ClientSecret -> Bool

ToQueryParam ClientSecret Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ClientSecret -> Map Text Text Source #

toOAuth2Key :: ClientId -> ClientSecret -> OAuth2 Source #

In order to reuse some methods from legacy Network.OAuth.OAuth2. Will be removed when Experiment module becomes default.

newtype RedirectUri Source #

Constructors

RedirectUri 

Fields

Instances

Instances details
Eq RedirectUri Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: RedirectUri -> RedirectUri -> Bool

(/=) :: RedirectUri -> RedirectUri -> Bool

ToQueryParam RedirectUri Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: RedirectUri -> Map Text Text Source #

newtype AuthorizeState Source #

Constructors

AuthorizeState 

Fields

Instances

Instances details
IsString AuthorizeState Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> AuthorizeState

Eq AuthorizeState Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

ToQueryParam AuthorizeState Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: AuthorizeState -> Map Text Text Source #

newtype Username Source #

Constructors

Username 

Fields

Instances

Instances details
IsString Username Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> Username

Eq Username Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: Username -> Username -> Bool

(/=) :: Username -> Username -> Bool

ToQueryParam Username Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Username -> Map Text Text Source #

newtype Password Source #

Constructors

Password 

Fields

Instances

Instances details
IsString Password Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

fromString :: String -> Password

Eq Password Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

(==) :: Password -> Password -> Bool

(/=) :: Password -> Password -> Bool

ToQueryParam Password Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Password -> Map Text Text Source #

Query parameters

class ToQueryParam a where Source #

Methods

toQueryParam :: a -> Map Text Text Source #

Instances

Instances details
ToQueryParam ExchangeToken Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ExchangeToken -> Map Text Text Source #

ToQueryParam RefreshToken Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: RefreshToken -> Map Text Text Source #

ToQueryParam CodeChallenge Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: CodeChallenge -> Map Text Text Source #

ToQueryParam CodeChallengeMethod Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: CodeChallengeMethod -> Map Text Text Source #

ToQueryParam CodeVerifier Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: CodeVerifier -> Map Text Text Source #

ToQueryParam AuthorizeState Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: AuthorizeState -> Map Text Text Source #

ToQueryParam ClientId Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ClientId -> Map Text Text Source #

ToQueryParam ClientSecret Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ClientSecret -> Map Text Text Source #

ToQueryParam GrantTypeValue Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: GrantTypeValue -> Map Text Text Source #

ToQueryParam Password Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Password -> Map Text Text Source #

ToQueryParam RedirectUri Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: RedirectUri -> Map Text Text Source #

ToQueryParam Username Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Username -> Map Text Text Source #

ToQueryParam (Set Scope) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Set Scope -> Map Text Text Source #

ToQueryParam (AuthorizationRequest 'AuthorizationCode) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

ToQueryParam (RefreshTokenRequest 'AuthorizationCode) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

ToQueryParam (TokenRequest 'AuthorizationCode) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: TokenRequest 'AuthorizationCode -> Map Text Text Source #

ToQueryParam (TokenRequest 'ClientCredentials) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: TokenRequest 'ClientCredentials -> Map Text Text Source #

ToQueryParam (TokenRequest 'ResourceOwnerPassword) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

ToQueryParam a => ToQueryParam (Maybe a) Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: Maybe a -> Map Text Text Source #

Authorization and Token Requests types

class HasTokenRequest (a :: GrantTypeFlow) where Source #

Associated Types

data TokenRequest a Source #

Each GrantTypeFlow has slightly different request parameter to /token endpoint.

type WithExchangeToken a b Source #

Only 'AuthorizationCode flow (but not resource owner password nor client credentials) will use ExchangeToken in the token request create type family to be explicit on it. with 'type instance WithExchangeToken a b = b' implies no exchange token v.s. 'type instance WithExchangeToken a b = ExchangeToken -> b' implies needing an exchange token

Instances

Instances details
HasTokenRequest 'AuthorizationCode Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

HasTokenRequest 'ClientCredentials Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

HasTokenRequest 'ResourceOwnerPassword Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

class HasPkceAuthorizeRequest (a :: GrantTypeFlow) where Source #

Methods

mkPkceAuthorizeRequest :: MonadIO m => IdpApplication a i -> m (Text, CodeVerifier) Source #

Instances

Instances details
HasPkceAuthorizeRequest 'AuthorizationCode Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

class HasPkceTokenRequest (b :: GrantTypeFlow) where Source #

Methods

conduitPkceTokenRequest :: MonadIO m => IdpApplication b i -> Manager -> (ExchangeToken, CodeVerifier) -> ExceptT (OAuth2Error Errors) m OAuth2Token Source #

Instances

Instances details
HasPkceTokenRequest 'AuthorizationCode Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

conduitPkceTokenRequest :: forall (m :: Type -> Type) i. MonadIO m => IdpApplication 'AuthorizationCode i -> Manager -> (ExchangeToken, CodeVerifier) -> ExceptT (OAuth2Error Errors) m OAuth2Token Source #

User Info types

type family IdpUserInfo a Source #

class HasUserInfoRequest (a :: GrantTypeFlow) where Source #

Methods

conduitUserInfoRequest :: FromJSON (IdpUserInfo i) => IdpApplication a i -> Manager -> AccessToken -> ExceptT ByteString IO (IdpUserInfo i) Source #

Instances

Instances details
HasUserInfoRequest 'AuthorizationCode Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

conduitUserInfoRequest :: FromJSON (IdpUserInfo i) => IdpApplication 'AuthorizationCode i -> Manager -> AccessToken -> ExceptT ByteString IO (IdpUserInfo i) Source #

HasUserInfoRequest 'ResourceOwnerPassword Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

conduitUserInfoRequest :: FromJSON (IdpUserInfo i) => IdpApplication 'ResourceOwnerPassword i -> Manager -> AccessToken -> ExceptT ByteString IO (IdpUserInfo i) Source #

Idp App

data Idp a Source #

Shall IdpApplication has a field of 'Idp a'??

Constructors

Idp 

Fields

Idp App Config

Authorization Code flow

Password flow

Client Credentials flow