flwr_oauth2/client_registration
Types
pub type ClientInformationResponse {
ClientInformationResponse(
client_id: String,
client_id_issued_at: option.Option(timestamp.Timestamp),
client_metadata: ClientMetadata,
client_management: option.Option(ClientManagement),
)
ConfidentialClientInformationResponse(
client_id: String,
client_id_issued_at: option.Option(timestamp.Timestamp),
client_metadata: ClientMetadata,
client_management: option.Option(ClientManagement),
client_secret: common.Secret,
)
}
Constructors
-
ClientInformationResponse( client_id: String, client_id_issued_at: option.Option(timestamp.Timestamp), client_metadata: ClientMetadata, client_management: option.Option(ClientManagement), ) -
ConfidentialClientInformationResponse( client_id: String, client_id_issued_at: option.Option(timestamp.Timestamp), client_metadata: ClientMetadata, client_management: option.Option(ClientManagement), client_secret: common.Secret, )
Extension type to meet RFC7592 requirements. This allows to parse the registration client uri to read and update the created client as well as the required access token for the endpoint.
pub type ClientManagement {
ClientManagement(
registration_client_uri: uri.Uri,
registration_access_token: String,
)
}
Constructors
-
ClientManagement( registration_client_uri: uri.Uri, registration_access_token: String, )
pub type ClientMetadata {
ClientMetadata(
redirect_uris: List(uri.Uri),
software_statement: option.Option(String),
token_endpoint_auth_method: option.Option(
TokenEndpointAuthMethod,
),
grant_types: List(GrantType),
response_types: List(ResponseType),
client_name: option.Option(String),
client_name_localized: dict.Dict(String, String),
client_uri: option.Option(uri.Uri),
client_uri_localized: dict.Dict(String, uri.Uri),
logo_uri: option.Option(uri.Uri),
logo_uri_localized: dict.Dict(String, uri.Uri),
scope: List(String),
contacts: List(String),
tos_uri: option.Option(uri.Uri),
tos_uri_localized: dict.Dict(String, uri.Uri),
policy_uri: option.Option(uri.Uri),
policy_uri_localized: dict.Dict(String, uri.Uri),
jwks: JwksLocation,
software_id: option.Option(String),
software_version: option.Option(String),
)
}
Constructors
-
ClientMetadata( redirect_uris: List(uri.Uri), software_statement: option.Option(String), token_endpoint_auth_method: option.Option( TokenEndpointAuthMethod, ), grant_types: List(GrantType), response_types: List(ResponseType), client_name: option.Option(String), client_name_localized: dict.Dict(String, String), client_uri: option.Option(uri.Uri), client_uri_localized: dict.Dict(String, uri.Uri), logo_uri: option.Option(uri.Uri), logo_uri_localized: dict.Dict(String, uri.Uri), scope: List(String), contacts: List(String), tos_uri: option.Option(uri.Uri), tos_uri_localized: dict.Dict(String, uri.Uri), policy_uri: option.Option(uri.Uri), policy_uri_localized: dict.Dict(String, uri.Uri), jwks: JwksLocation, software_id: option.Option(String), software_version: option.Option(String), )Arguments
- client_name_localized
-
The localized variant of the client name. The key should only be the local for the localized name, for example “ja-Jpan-JP”. Setting the key to “client_name#ja-Jpan-JP” would be incorrect. The same goes for all other localized variants
pub type ClientRegistrationRequest {
ClientRegistrationRequest(
client_creation_endpoint: uri.Uri,
access_token: option.Option(String),
client_metadata: ClientMetadata,
)
}
Constructors
-
ClientRegistrationRequest( client_creation_endpoint: uri.Uri, access_token: option.Option(String), client_metadata: ClientMetadata, )
pub type GrantType {
AuthorizationCode
Implicit
Password
ClientCredentials
RefreshToken
UrnIetfParamsOauthGrantTypeJwtBearer
UrnIetfParamsOauthGrantTypeSaml2Bearer
OtherGrantType(name: String)
}
Constructors
-
AuthorizationCode -
Implicit -
Password -
ClientCredentials -
RefreshToken -
UrnIetfParamsOauthGrantTypeJwtBearer -
UrnIetfParamsOauthGrantTypeSaml2Bearer -
OtherGrantType(name: String)
pub type JwksLocation {
ByValue(value: jwk.JwkSet)
ByUri(value: uri.Uri)
NoJwks
}
Constructors
-
ByValue(value: jwk.JwkSet) -
ByUri(value: uri.Uri) -
NoJwks
pub type RequestError =
token_request.RequestError
pub type ResponseType {
Code
Token
OtherResponseType(name: String)
}
Constructors
-
Code -
Token -
OtherResponseType(name: String)
pub type TokenEndpointAuthMethod {
NoAuthMethod
ClientSecretPost
ClientSecretBasic
OtherTokenEndpointAuthMethod(name: String)
}
Constructors
-
NoAuthMethod -
ClientSecretPost -
ClientSecretBasic -
OtherTokenEndpointAuthMethod(name: String)
Values
pub fn client_information_response_decoder() -> decode.Decoder(
ClientInformationResponse,
)
pub fn client_information_response_to_json(
client_information_response resp: ClientInformationResponse,
) -> json.Json
pub fn client_information_response_with_extensions_to_json(
client_information_response resp: ClientInformationResponse,
extensions ext: List(#(String, json.Json)),
) -> json.Json
Serializes the client information response to json. IMPORTANT: If the extensions contain a duplicated key it will be serialized AS IS.
pub fn client_metadata_decoder() -> decode.Decoder(ClientMetadata)
pub fn client_metadata_to_json(
client_metadata: ClientMetadata,
) -> json.Json
pub fn client_metadata_with_extensions_to_json(
client_metadata: ClientMetadata,
extensions: List(#(String, json.Json)),
) -> json.Json
pub fn parse_client_registration_response(
response resp: response.Response(String),
) -> Result(ClientInformationResponse, response.ResponseError)
pub fn to_http_request(
client_registration_request: ClientRegistrationRequest,
) -> Result(request.Request(String), token_request.RequestError)
Creates an HTTP Request to create a client according to RFC7591
pub fn to_http_with_extensions_request(
client_registration_request: ClientRegistrationRequest,
extensions: List(#(String, json.Json)),
) -> Result(request.Request(String), token_request.RequestError)
Creates an HTTP Request to create a client according to RFC7591 Additionally, custom extensions can be added.