Sourcemeta Core 0.0.0
Loading...
Searching...
No Matches
oidc_error.h
1#ifndef SOURCEMETA_CORE_OIDC_ERROR_H_
2#define SOURCEMETA_CORE_OIDC_ERROR_H_
3
4#ifndef SOURCEMETA_CORE_OIDC_EXPORT
5#include <sourcemeta/core/oidc_export.h>
6#endif
7
8#include <cstdint> // std::uint8_t
9#include <exception> // std::exception
10#include <optional> // std::optional
11#include <string_view> // std::string_view
12
13namespace sourcemeta::core {
14
15#if defined(_MSC_VER)
16#pragma warning(disable : 4251 4275)
17#endif
18
22class SOURCEMETA_CORE_OIDC_EXPORT OIDCMetadataParseError
23 : public std::exception {
24public:
25 [[nodiscard]] auto what() const noexcept -> const char * override {
26 return "The input is not a valid OpenID Provider metadata document";
27 }
28};
29
33class SOURCEMETA_CORE_OIDC_EXPORT OIDCRegistrationParseError
34 : public std::exception {
35public:
36 [[nodiscard]] auto what() const noexcept -> const char * override {
37 return "The input is not a valid OpenID Connect client registration "
38 "document";
39 }
40};
41
42#if defined(_MSC_VER)
43#pragma warning(default : 4251 4275)
44#endif
45
73
86SOURCEMETA_CORE_OIDC_EXPORT
87auto oidc_error_code(const OIDCAuthenticationError error) noexcept
88 -> std::string_view;
89
102SOURCEMETA_CORE_OIDC_EXPORT
103auto to_oidc_authentication_error(const std::string_view code) noexcept
104 -> std::optional<OIDCAuthenticationError>;
105
106} // namespace sourcemeta::core
107
108#endif
SOURCEMETA_CORE_OIDC_EXPORT auto oidc_error_code(const OIDCAuthenticationError error) noexcept -> std::string_view
OIDCAuthenticationError
Definition oidc_error.h:49
SOURCEMETA_CORE_OIDC_EXPORT auto to_oidc_authentication_error(const std::string_view code) noexcept -> std::optional< OIDCAuthenticationError >
@ RequestNotSupported
The provider does not support the request parameter.
Definition oidc_error.h:67
@ RegistrationNotSupported
The provider does not support the registration parameter.
Definition oidc_error.h:71
@ InteractionRequired
Definition oidc_error.h:52
@ AccountSelectionRequired
Definition oidc_error.h:58
@ ConsentRequired
Definition oidc_error.h:61
@ RequestURINotSupported
The provider does not support the request_uri parameter.
Definition oidc_error.h:69
@ InvalidRequestURI
The request_uri is invalid or unreachable.
Definition oidc_error.h:63
@ LoginRequired
Definition oidc_error.h:55
@ InvalidRequestObject
The request object is invalid.
Definition oidc_error.h:65