hoauth2-0.4.1: hoauth2

Safe HaskellNone
LanguageHaskell2010

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.com/accounts/docs/OAuth2

Instances

Show AccessToken 
FromJSON AccessToken

Parse JSON data into {AccessToken}

Types Synonym

type OAuth2Result a = Either ByteString a Source

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 = ByteString Source

type synonym of a URI

URLs

authorizationUrl :: OAuth2 -> URI Source

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

accessTokenUrl Source

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.

refreshAccessTokenUrl Source

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 -> URI Source

Append query parameters with ?

appendAccessToken Source

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 -> QueryParams Source

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