Collection of Google workflows for PAL.
For details, read the Google documentation.
You can configure the workflow by passing options below into pal:new/2
or pal:group/2
functions:
client_id
(required) - The client ID obtained from the Developers Console.client_secret
(required) - The client secret obtained from the Developers Console.redirect_uri
(required) - The client redirection endpoint. After completing its interaction with the resource owner, the authorization server directs the resource owner's user-agent to this uri.scope
(optional) - The scope of the access request.request_options
(optional) - Options for the hackney HTTP client.includes
(optional) - Parts of authentication schema to be processed by the workflow. All by default,[uid, credentials, info, extra, rules]
.
code
- The authorization code.state
- The state was previously passed to the authentication provider.error
If the request fails due to a missing, invalid, or mismatching redirection URI, or if the client identifier is missing or invalid.
An successful execution of pal:authenticate/{2,3}
function returns
the authentication schema below.
#{access_token => <<"...">>,
token_type => <<"Bearer">>,
expires_in => 3599,
id_token => <<"...">>}
See a complete example with PAL and Cowboy HTTP server here.
You can configure the workflow by passing options below into pal:new/2
or pal:group/2
functions:
request_options
(optional) - Options for the hackney HTTP client.includes
(optional) - Parts of authentication schema to be processed by the workflow. All by default,[uid, credentials, info, extra, rules]
.
id_token
(required) - An id token obtained using thepal_google_oauth2_authcode
workflow.
An successful execution of pal:authenticate/{2,3}
function returns
the authentication schema below.
#{uid => <<"...">>,
info =>
#{email => <<"[email protected]">>}}
See a complete example with PAL and Cowboy HTTP server here.
You can configure the workflow by passing options below into pal:new/2
or pal:group/2
functions:
request_options
(optional) - Options for the hackney HTTP client.includes
(optional) - Parts of authentication schema to be processed by the workflow. All by default,[uid, credentials, info, extra, rules]
.
access_token
(required) - An access token obtained using thepal_google_oauth2_authcode
workflow.
An successful execution of pal:authenticate/{2,3}
function returns
the authentication schema below.
#{uid => <<"...">>,
info =>
#{name => <<"John Doe">>,
first_name => <<"John">>,
last_name => <<"Doe">>,
gender => <<"male">>,
email => <<"[email protected]">>,
image => <<"https://lh3.googleusercontent.com/...">>,
uri => <<"https://plus.google.com/...">>}}
See a complete example with PAL and Cowboy HTTP server here.
The source code is provided under the terms of the MIT license.