1#ifndef TENDUKE_OIDC_DEFAULTOIDCBROWSERFLOW_H
2#define TENDUKE_OIDC_DEFAULTOIDCBROWSERFLOW_H
4#include "./BaseOIDCClient.h"
5#include "./DefaultOIDCBrowserFlowAuthenticationRequest.h"
6#include "./DefaultOIDCRefreshRequest.h"
7#include "../OIDCBrowserFlow.h"
8#include "../OIDCConfiguration.h"
9#include "../../oauth/OAuthBrowserFlow.h"
11#include "http/HTTPClient.h"
12#include "jwt/JWTParser.h"
13#include "utl/random/RandomURLSafeString.h"
20namespace tenduke {
namespace oidc {
46 const std::shared_ptr<const tenduke::oauth::OAuthBrowserFlow> &oauthClient,
47 const std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> &randomUrlSafeString,
48 const std::shared_ptr<const tenduke::jwt::JWTParser> &jwtParser,
49 const std::shared_ptr<const tenduke::http::HTTPClient> &httpClient,
54 std::unique_ptr<const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest>
authenticate(
const std::string &scopes)
const override;
55 std::unique_ptr<const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest>
authenticate(
56 const std::string &scopes,
57 const std::map<std::string, std::string> &additionalParameters
68 const std::shared_ptr<const tenduke::oauth::OAuthBrowserFlow> oauthClient;
69 const std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> randomUrlSafeString;
71 const size_t nonceLength;
Base-class for OIDC-clients.
Definition BaseOIDCClient.h:22
const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > oidcConfiguration
OIDC-configuration.
Definition BaseOIDCClient.h:71
Default implementation of browser-based OIDC-client.
Definition DefaultOIDCBrowserFlow.h:29
static const std::size_t DEFAULT_NONCE_LENGTH
Default nonce length.
Definition DefaultOIDCBrowserFlow.h:32
std::string generateNonce() const
Generates nonce.
Definition DefaultOIDCBrowserFlow.cpp:35
std::unique_ptr< const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest > authenticate(const std::string &scopes) const override
Creates OIDCRequest which performs the OIDC-authentication.
Definition DefaultOIDCBrowserFlow.cpp:28
OpenID Connect -client.
Definition OIDCBrowserFlow.h:22
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4