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

Network.OAuth.OAuth2.Internal

Synopsis

Data Types

data OAuth2 Source #

Query Parameter Representation

Constructors

OAuth2 

Fields

Instances

Instances details
Show OAuth2 Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> OAuth2 -> ShowS

show :: OAuth2 -> String

showList :: [OAuth2] -> ShowS

Default OAuth2 Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

def :: OAuth2

Eq OAuth2 Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: OAuth2 -> OAuth2 -> Bool

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

newtype AccessToken Source #

Constructors

AccessToken 

Fields

Instances

Instances details
FromJSON AccessToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser AccessToken

parseJSONList :: Value -> Parser [AccessToken]

ToJSON AccessToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: AccessToken -> Value

toEncoding :: AccessToken -> Encoding

toJSONList :: [AccessToken] -> Value

toEncodingList :: [AccessToken] -> Encoding

Show AccessToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> AccessToken -> ShowS

show :: AccessToken -> String

showList :: [AccessToken] -> ShowS

Binary AccessToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

put :: AccessToken -> Put

get :: Get AccessToken

putList :: [AccessToken] -> Put

Eq AccessToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: AccessToken -> AccessToken -> Bool

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

newtype RefreshToken Source #

Constructors

RefreshToken 

Fields

Instances

Instances details
FromJSON RefreshToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser RefreshToken

parseJSONList :: Value -> Parser [RefreshToken]

ToJSON RefreshToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: RefreshToken -> Value

toEncoding :: RefreshToken -> Encoding

toJSONList :: [RefreshToken] -> Value

toEncodingList :: [RefreshToken] -> Encoding

Show RefreshToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> RefreshToken -> ShowS

show :: RefreshToken -> String

showList :: [RefreshToken] -> ShowS

Binary RefreshToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

put :: RefreshToken -> Put

get :: Get RefreshToken

putList :: [RefreshToken] -> Put

Eq RefreshToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: RefreshToken -> RefreshToken -> Bool

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

ToQueryParam RefreshToken Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: RefreshToken -> Map Text Text Source #

newtype IdToken Source #

Constructors

IdToken 

Fields

Instances

Instances details
FromJSON IdToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser IdToken

parseJSONList :: Value -> Parser [IdToken]

ToJSON IdToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: IdToken -> Value

toEncoding :: IdToken -> Encoding

toJSONList :: [IdToken] -> Value

toEncodingList :: [IdToken] -> Encoding

Show IdToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> IdToken -> ShowS

show :: IdToken -> String

showList :: [IdToken] -> ShowS

Binary IdToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

put :: IdToken -> Put

get :: Get IdToken

putList :: [IdToken] -> Put

Eq IdToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: IdToken -> IdToken -> Bool

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

newtype ExchangeToken Source #

Authorization Code

Constructors

ExchangeToken 

Fields

Instances

Instances details
FromJSON ExchangeToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser ExchangeToken

parseJSONList :: Value -> Parser [ExchangeToken]

ToJSON ExchangeToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: ExchangeToken -> Value

toEncoding :: ExchangeToken -> Encoding

toJSONList :: [ExchangeToken] -> Value

toEncodingList :: [ExchangeToken] -> Encoding

Show ExchangeToken Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> ExchangeToken -> ShowS

show :: ExchangeToken -> String

showList :: [ExchangeToken] -> ShowS

ToQueryParam ExchangeToken Source # 
Instance details

Defined in Network.OAuth2.Experiment.Types

Methods

toQueryParam :: ExchangeToken -> Map Text Text Source #

data OAuth2Token Source #

Constructors

OAuth2Token 

Fields

Instances

Instances details
FromJSON OAuth2Token Source #

Parse JSON data into OAuth2Token

Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser OAuth2Token

parseJSONList :: Value -> Parser [OAuth2Token]

ToJSON OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: OAuth2Token -> Value

toEncoding :: OAuth2Token -> Encoding

toJSONList :: [OAuth2Token] -> Value

toEncodingList :: [OAuth2Token] -> Encoding

Generic OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Associated Types

type Rep OAuth2Token :: Type -> Type

Methods

from :: OAuth2Token -> Rep OAuth2Token x

to :: Rep OAuth2Token x -> OAuth2Token

Show OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> OAuth2Token -> ShowS

show :: OAuth2Token -> String

showList :: [OAuth2Token] -> ShowS

Binary OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

put :: OAuth2Token -> Put

get :: Get OAuth2Token

putList :: [OAuth2Token] -> Put

Eq OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: OAuth2Token -> OAuth2Token -> Bool

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

type Rep OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

type Rep OAuth2Token = D1 ('MetaData "OAuth2Token" "Network.OAuth.OAuth2.Internal" "hoauth2-2.6.0-3FEv8fwd5ChB6MWJsO0DWt" 'False) (C1 ('MetaCons "OAuth2Token" 'PrefixI 'True) ((S1 ('MetaSel ('Just "accessToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AccessToken) :*: S1 ('MetaSel ('Just "refreshToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RefreshToken))) :*: (S1 ('MetaSel ('Just "expiresIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "tokenType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "idToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IdToken))))))

data OAuth2Error a Source #

Constructors

OAuth2Error 

Fields

Instances

Instances details
FromJSON err => FromJSON (OAuth2Error err) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

parseJSON :: Value -> Parser (OAuth2Error err)

parseJSONList :: Value -> Parser [OAuth2Error err]

ToJSON err => ToJSON (OAuth2Error err) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

toJSON :: OAuth2Error err -> Value

toEncoding :: OAuth2Error err -> Encoding

toJSONList :: [OAuth2Error err] -> Value

toEncodingList :: [OAuth2Error err] -> Encoding

Generic (OAuth2Error a) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Associated Types

type Rep (OAuth2Error a) :: Type -> Type

Methods

from :: OAuth2Error a -> Rep (OAuth2Error a) x

to :: Rep (OAuth2Error a) x -> OAuth2Error a

Show a => Show (OAuth2Error a) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

showsPrec :: Int -> OAuth2Error a -> ShowS

show :: OAuth2Error a -> String

showList :: [OAuth2Error a] -> ShowS

Eq a => Eq (OAuth2Error a) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Methods

(==) :: OAuth2Error a -> OAuth2Error a -> Bool

(/=) :: OAuth2Error a -> OAuth2Error a -> Bool

type Rep (OAuth2Error a) Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

type Rep (OAuth2Error a) = D1 ('MetaData "OAuth2Error" "Network.OAuth.OAuth2.Internal" "hoauth2-2.6.0-3FEv8fwd5ChB6MWJsO0DWt" 'False) (C1 ('MetaCons "OAuth2Error" 'PrefixI 'True) (S1 ('MetaSel ('Just "error") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either Text a)) :*: (S1 ('MetaSel ('Just "errorDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "errorUri") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (URIRef Absolute))))))

parseOAuth2Error :: FromJSON err => ByteString -> OAuth2Error err Source #

mkDecodeOAuth2Error :: ByteString -> String -> OAuth2Error err Source #

data ClientAuthenticationMethod Source #

https://www.rfc-editor.org/rfc/rfc6749#section-2.3 According to spec:

The client MUST NOT use more than one authentication method in each request.

Which means use Authorization header or Post body.

However, in reality, I always have to include authentication in the header.

In other words, ClientSecrectBasic is always assured. ClientSecretPost is optional.

Maybe consider an alternative implementation that boolean kind of data type is good enough.

Types Synonym

type PostBody = [(ByteString, ByteString)] Source #

type synonym of post body content

type QueryParams = [(ByteString, ByteString)] Source #

Utilies

defaultRequestHeaders :: [(HeaderName, ByteString)] Source #

appendQueryParams :: [(ByteString, ByteString)] -> URIRef a -> URIRef a Source #

uriToRequest :: MonadThrow m => URI -> m Request Source #

requestToUri :: Request -> URI Source #

hostLens :: Lens' Request ByteString Source #

portLens :: Lens' Request Int Source #