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
refresh_jwks
- How to handle tokens with an unknownkid
. Seeoidcc_jwt_util:refresh_jwks_for_unknown_kid_fun()
expected_subject
- expected subject for the userinfo (sub
from id token)
-type retrieve_opts_no_sub() :: #{refresh_jwks => oidcc_jwt_util:refresh_jwks_for_unknown_kid_fun()}.
retrieve_opts()
Link to this section Functions
-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, #{}).