View Source oidcc_authorization (Oidcc v3.0.0-rc.3)

Functions to start an OpenID Connect Authorization

Link to this section Summary

Types

Configure authorization redirect url

Configure PKCE for authorization

Link to this section Types

Link to this type

error/0

View Source (since 3.0.0 -------------------------------------------------------------------)
-type error() :: {grant_type_not_supported, authorization_code}.
Link to this type

opts/0

View Source (since 3.0.0 -------------------------------------------------------------------)
-type opts() ::
    #{scopes => oidcc_scope:scopes(),
      state => binary(),
      nonce => binary(),
      pkce => pkce() | undefined,
      redirect_uri := uri_string:uri_string(),
      url_extension => oidcc_http_util:query_params()}.

Configure authorization redirect url

See https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest

parameters

Parameters

  • scopes - list of scopes to request (defaults to [<<"openid">>])
  • state - state to pass to the provider
  • nonce - nonce to pass to the provider
  • pkce - pkce arguments to pass to the provider
  • redirect_uri - redirect target after authorization is completed
  • url_extension - add custom query parameters to the authorization url
Link to this type

pkce/0

View Source (since 3.0.0 -------------------------------------------------------------------)
-type pkce() :: #{challenge := binary(), method := binary()}.

Configure PKCE for authorization

See https://datatracker.ietf.org/doc/html/rfc7636#section-4.3

Link to this section Functions

Link to this function

create_redirect_url(ClientContext, Opts)

View Source (since 3.0.0)
-spec create_redirect_url(ClientContext, Opts) -> {ok, Uri} | {error, error()}
                       when
                           ClientContext :: oidcc_client_context:t(),
                           Opts :: opts(),
                           Uri :: uri_string:uri_string().

Create Auth Redirect URL

For a high level interface using oidcc_provider_configuration_worker see oidcc:create_redirect_url/4.

examples

Examples

  {ok, ClientContext} =
      oidcc_client_context:from_configuration_worker(provider_name,
                                                     <<"client_id">>,
                                                     <<"client_secret">>),
 
  {ok, RedirectUri} =
      oidcc_authorization:create_redirect_url(ClientContext,
                                              #{redirect_uri: <<"https://my.server/return"}),
 
  %% RedirectUri = https://my.provider/auth?scope=openid&response_type=code&client_id=client_id&redirect_uri=https%3A%2F%2Fmy.server%2Freturn