Sourcemeta Core 0.0.0
Loading...
Searching...
No Matches
oidc_registration.h
1#ifndef SOURCEMETA_CORE_OIDC_REGISTRATION_H_
2#define SOURCEMETA_CORE_OIDC_REGISTRATION_H_
3
4#ifndef SOURCEMETA_CORE_OIDC_EXPORT
5#include <sourcemeta/core/oidc_export.h>
6#endif
7
8#include <sourcemeta/core/json.h>
9#include <sourcemeta/core/oauth.h>
10
11#include <chrono> // std::chrono::seconds
12#include <optional> // std::optional
13#include <span> // std::span
14#include <string_view> // std::string_view
15
16namespace sourcemeta::core {
17
18#if defined(_MSC_VER)
19#pragma warning(disable : 4251)
20#endif
21
44class SOURCEMETA_CORE_OIDC_EXPORT OIDCClientMetadata {
45public:
49
52 [[nodiscard]] static auto from(JSON &&data)
53 -> std::optional<OIDCClientMetadata>;
54
57 [[nodiscard]] auto has_redirect_uri(const std::string_view value) const
58 -> bool;
59
62 [[nodiscard]] auto application_type() const -> std::string_view;
63
66 [[nodiscard]] auto subject_type() const -> std::optional<std::string_view>;
67
70 [[nodiscard]] auto sector_identifier_uri() const
71 -> std::optional<std::string_view>;
72
75 [[nodiscard]] auto id_token_signed_response_alg() const -> std::string_view;
76
79 [[nodiscard]] auto id_token_encrypted_response_alg() const
80 -> std::optional<std::string_view>;
81
84 [[nodiscard]] auto userinfo_signed_response_alg() const
85 -> std::optional<std::string_view>;
86
89 [[nodiscard]] auto default_max_age() const
90 -> std::optional<std::chrono::seconds>;
91
94 [[nodiscard]] auto require_auth_time() const -> bool;
95
98 [[nodiscard]] auto initiate_login_uri() const
99 -> std::optional<std::string_view>;
100
103 [[nodiscard]] auto
104 has_post_logout_redirect_uri(const std::string_view value) const -> bool;
105
107 [[nodiscard]] auto oauth() const -> const OAuthClientMetadata &;
108
110 [[nodiscard]] auto data() const -> const JSON &;
111
112private:
113 OAuthClientMetadata oauth_;
114};
115
116#if defined(_MSC_VER)
117#pragma warning(default : 4251)
118#endif
119
139SOURCEMETA_CORE_OIDC_EXPORT
141 const JSON &sector_document,
142 const std::span<const std::string_view> redirect_uris) -> bool;
143
144} // namespace sourcemeta::core
145
146#endif
Definition json_value.h:39
Definition oauth_registration.h:53
auto id_token_encrypted_response_alg() const -> std::optional< std::string_view >
auto has_post_logout_redirect_uri(const std::string_view value) const -> bool
auto userinfo_signed_response_alg() const -> std::optional< std::string_view >
auto id_token_signed_response_alg() const -> std::string_view
auto has_redirect_uri(const std::string_view value) const -> bool
static auto from(JSON &&data) -> std::optional< OIDCClientMetadata >
auto application_type() const -> std::string_view
auto subject_type() const -> std::optional< std::string_view >
auto default_max_age() const -> std::optional< std::chrono::seconds >
auto data() const -> const JSON &
The underlying document, for reaching members without a typed accessor.
auto oauth() const -> const OAuthClientMetadata &
The underlying OAuth client registration this document is a superset of.
auto require_auth_time() const -> bool
auto sector_identifier_uri() const -> std::optional< std::string_view >
auto initiate_login_uri() const -> std::optional< std::string_view >
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_sector_identifier_contains(const JSON &sector_document, const std::span< const std::string_view > redirect_uris) -> bool