hoauth2-0.4.1: hoauth2

Safe HaskellNone

Network.OAuth.OAuth2.Internal

Contents

Description

A simple OAuth2 Haskell binding. (This is supposed to be independent with http client.)

Synopsis

Data Types

data AccessToken Source

The gained Access Token. Use Data.Aeson.decode to decode string to AccessToken. The refresheToken is special at some case. e.g. https:developers.google.comaccountsdocs/OAuth2

Instances

Show AccessToken 
FromJSON AccessToken

Parse JSON data into {AccessToken}

Types Synonym

type OAuth2Result a = Either ByteString aSource

Is either Left containing an error or Right containg a result

type QueryParams = [(ByteString, ByteString)]Source

type synonym of query parameters

type PostBody = [(ByteString, ByteString)]Source

type synonym of post body content

type URI = ByteStringSource

type synonym of a URI

URLs

authorizationUrl :: OAuth2 -> URISource

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

accessTokenUrlSource

Arguments

:: OAuth2 
-> ByteString

access code gained via authorization URL

-> (URI, PostBody)

access token request URL plus the request body.

Prepare URL and the request body query for fetching access token.

accessTokenUrl'Source

Arguments

:: OAuth2 
-> ByteString

access code gained via authorization URL

-> Maybe ByteString

Grant Type

-> (URI, PostBody)

access token request URL plus the request body.

refreshAccessTokenUrlSource

Arguments

:: OAuth2 
-> ByteString

refresh token gained via authorization URL

-> (URI, PostBody)

refresh token request URL plus the request body.

Using a Refresh Token. obtain a new access token by sending a refresh token to the Authorization server.

UTILs

appendQueryParam :: URI -> QueryParams -> URISource

Append query parameters with ?

appendAccessTokenSource

Arguments

:: URI

Base URI

-> AccessToken

Authorized Access Token

-> URI

Combined Result

Append query parameters with &. appendQueryParam' :: URI -> QueryParams -> URI appendQueryParam' uri q = uri append & append renderSimpleQuery False q

For GET method API.

accessTokenToParam :: AccessToken -> QueryParamsSource

Create QueryParams with given access token value.

accessTokenToParam :: BS.ByteString -> QueryParams accessTokenToParam token = [(access_token, token)]

transform' :: [(a, Maybe b)] -> [(a, b)]Source

lift value in the Maybe and abonda Nothing