object
open_idï
Facade predicates for a portable OpenID Connect Authorization Code + PKCE client.
logtalk_load(open_id(loader))static, context_switching_callsPublic predicatesï
discover/3ï
Discovers and validates OpenID Provider metadata for the given issuer.
staticdiscover(Issuer,Provider,Options)discover(+atom,-compound,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)Issuer is a variable:instantiation_errorIssuer is not an absolute or allowed issuer URL:domain_error(open_id_issuer,Issuer)domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)Issuer:domain_error(open_id_issuer,DiscoveredIssuer)domain_error(open_id_provider_metadata_url,URL)exchange_code/5ï
Exchanges an authorization code for token response data.
staticexchange_code(Provider,Code,Session,Tokens,Options)exchange_code(+compound,+atom,+compound,-compound,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)Session is missing required authorization-code exchange data:domain_error(open_id_session,missing(Session,Name))domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)domain_error(open_id_token_response,missing(Name))refresh_token/4ï
Exchanges a refresh token for token response data.
staticrefresh_token(Provider,RefreshToken,Tokens,Options)refresh_token(+compound,+atom,-compound,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)client_id option is missing:domain_error(open_id_refresh_token,missing(client_id))domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)domain_error(open_id_token_response,missing(Name))userinfo/4ï
Fetches UserInfo claims using the given access token.
staticuserinfo(Provider,AccessToken,Claims,Options)userinfo(+compound,+atom,-term,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)domain_error(open_id_provider,missing(userinfo_endpoint))domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)logout_url/4ï
Builds a logout URL for an RP-initiated logout request.
staticlogout_url(Provider,Request,URL,Options)logout_url(+compound,+compound,-atom,+list(compound)) - one_or_errorRequest is neither a direct options list nor a request wrapper term containing an options list:domain_error(open_id_options,Request)Options is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)domain_error(open_id_provider,missing(end_session_endpoint))type_error(atom,Value)ui_locales value is neither an atom nor a list of atoms:domain_error(open_id_space_separated_atom,Value)post_logout_redirect_uri is not secure:domain_error(open_id_post_logout_redirect_uri,URL)jwks/3ï
Fetches the JSON Web Key Set for the provider.
staticjwks(Provider,JWKSet,Options)jwks(+compound,-term,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)cached_jwks/3ï
Returns a cached JWKS for a provider, refreshing it when needed.
staticcached_jwks(Provider,JWKSet,Options)cached_jwks(+compound,-term,+list(compound)) - one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)domain_error(open_id_provider,missing(jwks_uri))domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)verify_id_token/4ï
Verifies an ID-token using cached JWKS data, refreshing the JWKS once when the token key identifier is unknown.
staticverify_id_token(Token,Provider,Claims,Options)verify_id_token(+atom,+compound,-term,+list(compound)) - zero_or_one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)domain_error(open_id_provider,missing(jwks_uri))domain_error(open_id_http_status,Code)domain_error(open_id_json_response,Body)Token is a variable:instantiation_errorToken is neither a variable nor an atom:type_error(atom,Token)Token is an atom but not a valid compact JWT:domain_error(jwt_compact_serialization,Token)Token contains Base64URL data with characters outside the Base64URL alphabet:representation_error(base64)alg member:domain_error(jwt_header,Header)domain_error(open_id_jwt_algorithm,Algorithm)JWKSet is not a JSON Web Key Set with a keys list:domain_error(jwt_jwks,JWKSet)existence_error(jwt_jwk,Header)domain_error(jwt_jwk_public_key,Key)domain_error(jwt_es256_signature,Signature)existence_error(os_command,Executable)iss claim does not match the provider issuer:domain_error(open_id_claim(iss),Value)domain_error(open_id_claims,missing(Name))domain_error(open_id_claims,missing(expected_audience))domain_error(open_id_claim(Name),Value)type_error(time_number,Name-Time)verify_id_token/5ï
Verifies an ID-token signature and claims using the given provider metadata and JWKS.
staticverify_id_token(Token,Provider,JWKSet,Claims,Options)verify_id_token(+atom,+compound,+term,-term,+list(compound)) - zero_or_one_or_errorOptions is a variable or a partial list:instantiation_errorOptions is neither a variable nor a list:type_error(list,Options)Option of the list Options is neither a variable nor a compound term:type_error(compound,Option)Option of the list Options is a compound term but not a valid option:domain_error(option,Option)Token is a variable:instantiation_errorToken is neither a variable nor an atom:type_error(atom,Token)Token is an atom but not a valid compact JWT:domain_error(jwt_compact_serialization,Token)Token contains Base64URL data with characters outside the Base64URL alphabet:representation_error(base64)alg member:domain_error(jwt_header,Header)domain_error(open_id_jwt_algorithm,Algorithm)JWKSet is not a JSON Web Key Set with a keys list:domain_error(jwt_jwks,JWKSet)existence_error(jwt_jwk,Header)domain_error(jwt_jwk_public_key,Key)domain_error(jwt_es256_signature,Signature)existence_error(os_command,Executable)iss claim does not match the provider issuer:domain_error(open_id_claim(iss),Value)domain_error(open_id_claims,missing(Name))domain_error(open_id_claims,missing(expected_audience))domain_error(open_id_claim(Name),Value)type_error(time_number,Name-Time)Protected predicatesï
(no local declarations; see entity ancestors if any)
Private predicatesï
(no local declarations; see entity ancestors if any)
Operatorsï
(none)