hoauth2-2.14.0: Haskell OAuth2 authentication client
Safe HaskellNone
LanguageHaskell2010

Network.OAuth.OAuth2

Description

A lightweight oauth2 Haskell binding. See Readme for more details

Synopsis

Documentation

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

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, I found I have to include authentication in the header all the time in real world.

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

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

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]

omittedField :: Maybe 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

omitField :: RefreshToken -> Bool

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 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]

omittedField :: Maybe 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

omitField :: ExchangeToken -> Bool

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 #

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]

omittedField :: Maybe 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

omitField :: AccessToken -> Bool

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 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]

omittedField :: Maybe 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

omitField :: IdToken -> Bool

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

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]

omittedField :: Maybe 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

omitField :: OAuth2Token -> Bool

Generic OAuth2Token Source # 
Instance details

Defined in Network.OAuth.OAuth2.Internal

Associated Types

type Rep OAuth2Token 
Instance details

Defined in Network.OAuth.OAuth2.Internal

type Rep OAuth2Token = D1 ('MetaData "OAuth2Token" "Network.OAuth.OAuth2.Internal" "hoauth2-2.14.0-1srFxlSx183Bt7IllRi4kt" '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))))))

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.14.0-1srFxlSx183Bt7IllRi4kt" '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))))))

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

Type synonym of post body content

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

Type sysnonym of request query params

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

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

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

hostLens :: Lens' Request ByteString Source #

portLens :: Lens' Request Int Source #

requestToUri :: Request -> URI Source #

Authorization Requset

authorizationUrlWithParams :: QueryParams -> OAuth2 -> URI Source #

Prepare the authorization URL. Redirect to this URL asking for user interactive authentication.

Since: 2.6.0

Token Request

OAuth'ed http client utilities