Sourcemeta Core 0.0.0
Loading...
Searching...
No Matches
oidc_logout.h
1#ifndef SOURCEMETA_CORE_OIDC_LOGOUT_H_
2#define SOURCEMETA_CORE_OIDC_LOGOUT_H_
3
4#ifndef SOURCEMETA_CORE_OIDC_EXPORT
5#include <sourcemeta/core/oidc_export.h>
6#endif
7
8#include <sourcemeta/core/jose.h>
9
10#include <chrono> // std::chrono::system_clock
11#include <span> // std::span
12#include <string> // std::string
13#include <string_view> // std::string_view
14
15namespace sourcemeta::core {
16
23 std::string_view id_token_hint;
26 std::string_view logout_hint;
28 std::string_view client_id;
31 std::string_view post_logout_redirect_uri;
34 std::string_view state;
37 std::string_view ui_locales;
38};
39
58SOURCEMETA_CORE_OIDC_EXPORT
59auto oidc_build_logout_url(const std::string_view end_session_endpoint,
60 const OIDCLogoutRequest &request, std::string &sink)
61 -> void;
62
87SOURCEMETA_CORE_OIDC_EXPORT
89 const JWT &token, const JWKS &keys,
90 const std::span<const JWSAlgorithm> allowed_algorithms,
91 const std::string_view issuer, const std::string_view client_id,
92 const std::chrono::system_clock::time_point now,
93 const JWTClockSkew clock_skew = {}) -> bool;
94
109SOURCEMETA_CORE_OIDC_EXPORT
110auto oidc_front_channel_pairing_is_valid(const std::string_view issuer,
111 const std::string_view session_id)
112 -> bool;
113
128SOURCEMETA_CORE_OIDC_EXPORT
129auto oidc_session_state(const std::string_view client_id,
130 const std::string_view origin,
131 const std::string_view provider_browser_state,
132 const std::string_view salt) -> std::string;
133
134} // namespace sourcemeta::core
135
136#endif
Definition jose_jwks.h:40
Definition jose_jwt.h:38
Definition jose_verify.h:57
std::string_view logout_hint
Definition oidc_logout.h:26
std::string_view post_logout_redirect_uri
Definition oidc_logout.h:31
std::string_view client_id
The client identifier (OpenID Connect RP-Initiated Logout 1.0 Section 2).
Definition oidc_logout.h:28
std::string_view state
Definition oidc_logout.h:34
std::string_view id_token_hint
Definition oidc_logout.h:23
std::string_view ui_locales
Definition oidc_logout.h:37
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_build_logout_url(const std::string_view end_session_endpoint, const OIDCLogoutRequest &request, std::string &sink) -> void
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_validate_logout_token(const JWT &token, const JWKS &keys, const std::span< const JWSAlgorithm > allowed_algorithms, const std::string_view issuer, const std::string_view client_id, const std::chrono::system_clock::time_point now, const JWTClockSkew clock_skew={}) -> bool
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_front_channel_pairing_is_valid(const std::string_view issuer, const std::string_view session_id) -> bool
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_session_state(const std::string_view client_id, const std::string_view origin, const std::string_view provider_browser_state, const std::string_view salt) -> std::string
Definition oidc_logout.h:20