View Source oidcc_userinfo (Oidcc v3.0.0-alpha.4)

OpenID Connect Userinfo

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

telemetry

Telemetry

See 'Elixir.Oidcc.Userinfo'

Link to this section Summary

Functions

Load userinfo for the given token

Link to this section Types

-type error() ::
    {distributed_claim_not_found, {ClaimSource :: binary(), ClaimName :: binary()}} |
    invalid_content_type | bad_subject |
    oidcc_jwt_util:error() |
    oidcc_http_util:error().
-type retrieve_opts() ::
    #{refresh_jwks => oidcc_jwt_util:refresh_jwks_for_unknown_kid_fun(),
      expected_subject := binary()}.

Configure userinfo request

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

parameters

Parameters

Link to this type

retrieve_opts_no_sub/0

View Source
-type retrieve_opts_no_sub() :: #{refresh_jwks => oidcc_jwt_util:refresh_jwks_for_unknown_kid_fun()}.
See retrieve_opts()

Link to this section Functions

Link to this function

retrieve(Token, ClientContext, Opts)

View Source
-spec retrieve(Token, ClientContext, Opts) -> {ok, oidcc_jwt_util:claims()} | {error, error()}
            when
                Token :: oidcc_token:t(),
                ClientContext :: oidcc_client_context:t(),
                Opts :: retrieve_opts_no_sub();
        (Token, ClientContext, Opts) -> {ok, oidcc_jwt_util:claims()} | {error, error()}
            when
                Token :: binary(),
                ClientContext :: oidcc_client_context:t(),
                Opts :: retrieve_opts().

Load userinfo for the given token

For a high level interface using oidcc_provider_configuration_worker see oidcc:retrieve_userinfo/5.

examples

Examples

  {ok, ClientContext} =
    oidcc_client_context:from_configuration_worker(provider_name,
                                                   <<"client_id">>,
                                                   <<"client_secret">>),
 
  %% Get Token
 
  {ok, #{<<"sub">> => Sub}} =
    oidcc_userinfo:retrieve(Token, ClientContext, #{}).