1#ifndef SOURCEMETA_CORE_OIDC_METADATA_H_
2#define SOURCEMETA_CORE_OIDC_METADATA_H_
4#ifndef SOURCEMETA_CORE_OIDC_EXPORT
5#include <sourcemeta/core/oidc_export.h>
8#include <sourcemeta/core/json.h>
9#include <sourcemeta/core/oauth.h>
15namespace sourcemeta::core {
18#pragma warning(disable : 4251)
64 -> std::optional<OIDCProviderMetadata>;
91 -> std::optional<OIDCProviderMetadata>;
94 [[nodiscard]]
auto issuer() const -> std::string_view;
98 -> std::optional<std::string_view>;
105 -> std::optional<std::string_view>;
110 -> std::optional<std::string_view>;
114 [[nodiscard]] auto
jwks_uri() const -> std::string_view;
119 -> std::optional<std::string_view>;
124 -> std::optional<std::string_view>;
170#pragma warning(default : 4251)
218 std::span<const std::string_view>
222 std::span<const std::string_view>
282SOURCEMETA_CORE_OIDC_EXPORT
284 -> std::optional<JSON>;
std::string_view userinfo_endpoint
The UserInfo endpoint (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:184
std::span< const std::string_view > userinfo_encryption_alg_values_supported
Definition oidc_metadata.h:209
auto registration_endpoint() const -> std::optional< std::string_view >
bool request_uri_parameter_supported
Definition oidc_metadata.h:245
bool claims_parameter_supported
Definition oidc_metadata.h:239
std::span< const std::string_view > display_values_supported
The supported display values (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:232
std::span< const std::string_view > acr_values_supported
Definition oidc_metadata.h:228
auto end_session_endpoint() const -> std::optional< std::string_view >
static auto from(JSON &&data, const std::string_view issuer) -> std::optional< OIDCProviderMetadata >
std::span< const std::string_view > request_object_signing_alg_values_supported
Definition oidc_metadata.h:215
OIDCProviderMetadata(JSON &&data, const std::string_view issuer)
std::span< const std::string_view > id_token_encryption_alg_values_supported
Definition oidc_metadata.h:200
auto supports_response_type(const std::string_view value) const -> bool
std::string_view check_session_iframe
Definition oidc_metadata.h:190
std::span< const std::string_view > claims_supported
The supported claims (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:225
std::span< const std::string_view > ui_locales_supported
The supported UI locales (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:236
auto supports_claims_parameter() const -> bool
OAuthServerMetadataConfig base
Definition oidc_metadata.h:182
auto token_endpoint() const -> std::optional< std::string_view >
The token endpoint (OpenID Connect Discovery 1.0 Section 3).
auto supports_id_token_signing_alg(const std::string_view value) const -> bool
auto userinfo_endpoint() const -> std::optional< std::string_view >
The UserInfo endpoint (OpenID Connect Discovery 1.0 Section 3).
auto oauth() const -> const OAuthServerMetadata &
bool require_request_uri_registration
Definition oidc_metadata.h:248
auto supports_subject_type(const std::string_view value) const -> bool
bool request_parameter_supported
Definition oidc_metadata.h:242
auto supports_scope(const std::string_view value) const -> bool
Whether a scope is supported (OpenID Connect Discovery 1.0 Section 3).
auto authorization_endpoint() const -> std::optional< std::string_view >
The authorization endpoint (OpenID Connect Discovery 1.0 Section 3).
std::span< const std::string_view > userinfo_encryption_enc_values_supported
Definition oidc_metadata.h:212
std::span< const std::string_view > userinfo_signing_alg_values_supported
Definition oidc_metadata.h:206
std::string_view end_session_endpoint
Definition oidc_metadata.h:187
std::span< const std::string_view > request_object_encryption_alg_values_supported
Definition oidc_metadata.h:219
auto data() const -> const JSON &
The underlying document, for reaching members without a typed accessor.
auto issuer() const -> std::string_view
The issuer identifier (OpenID Connect Discovery 1.0 Section 3).
auto supports_claim(const std::string_view value) const -> bool
Whether a claim is supported (OpenID Connect Discovery 1.0 Section 3).
auto check_session_iframe() const -> std::optional< std::string_view >
std::span< const std::string_view > id_token_encryption_enc_values_supported
Definition oidc_metadata.h:203
std::span< const std::string_view > id_token_signing_alg_values_supported
Definition oidc_metadata.h:197
std::span< const std::string_view > claim_types_supported
The supported claim types (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:230
std::span< const std::string_view > request_object_encryption_enc_values_supported
Definition oidc_metadata.h:223
auto supports_token_endpoint_auth_method(const std::string_view value) const -> bool
auto jwks_uri() const -> std::string_view
static auto from(OAuthServerMetadata &&oauth) -> std::optional< OIDCProviderMetadata >
std::span< const std::string_view > subject_types_supported
Definition oidc_metadata.h:193
OIDCProviderMetadata(OAuthServerMetadata &&oauth)
std::span< const std::string_view > claims_locales_supported
The supported claims locales (OpenID Connect Discovery 1.0 Section 3).
Definition oidc_metadata.h:234
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_make_provider_metadata(const OIDCProviderMetadataConfig &config) -> std::optional< JSON >