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

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

pub type ClientRegistrationRequest {
  ClientRegistrationRequest(
    client_creation_endpoint: uri.Uri,
    access_token: option.Option(String),
    client_metadata: ClientMetadata,
  )
}

Constructors

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

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_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_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.

✨ Search Document