10Duke Scale C++ Client
Loading...
Searching...
No Matches
tenduke::oauth::pkce::OAuthPKCEFlow Class Reference

#include <OAuthPKCEFlow.h>

Detailed Description

OAuth Authorization Code Grant with PKCE implementation of tenduke::oauth::OAuthClient.

Inheritance diagram for tenduke::oauth::pkce::OAuthPKCEFlow:
tenduke::oauth::BaseOAuthClient tenduke::oauth::OAuthBrowserFlow tenduke::oauth::OAuthClient tenduke::oauth::OAuthClient

Public Member Functions

 OAuthPKCEFlow (std::shared_ptr< const tenduke::oauth::OAuthConfiguration > config, std::shared_ptr< const tenduke::http::HTTPClient > httpClient, std::shared_ptr< const tenduke::net::URLParser > urlParser, std::shared_ptr< const tenduke::json::JSONParser > jsonParser, std::shared_ptr< const tenduke::utl::Base64Encoder > base64Encoder, std::shared_ptr< const tenduke::crypto::MessageDigestFactory > messageDigestFactory, std::shared_ptr< tenduke::time::Clock > clock, std::shared_ptr< tenduke::utl::random::RandomUrlSafeString > randomUrlSafeString)
 Constructs new instance.
 
std::unique_ptr< const tenduke::oauth::OAuthBrowserAuthorizationRequestauthorize (const std::string &scopes) const override
 Creates OAuthRequest to start the OAuth-authorization flow.
 
std::unique_ptr< const tenduke::oauth::OAuthBrowserAuthorizationRequestauthorize (const std::string &scopes, const std::map< std::string, std::string > &additionalParameters) const override
 Creates OAuthRequest to start the OAuth-authorization flow.
 
- Public Member Functions inherited from tenduke::oauth::BaseOAuthClient
 BaseOAuthClient (std::shared_ptr< const tenduke::oauth::OAuthConfiguration > config, std::shared_ptr< const tenduke::http::HTTPClient > httpClient, std::shared_ptr< const tenduke::json::JSONParser > jsonParser, std::shared_ptr< tenduke::time::Clock > clock)
 Constructs new instance.
 
std::shared_ptr< const OAuthConfigurationgetConfiguration () const
 Returns the configuration of this client.
 
std::unique_ptr< const tenduke::oauth::OAuthRefreshRequestrefresh (std::shared_ptr< tenduke::oauth::OAuthState > state) const override
 Creates OAuthRefreshRequest for refreshing the state.
 

Protected Member Functions

std::string generateState () const
 Generates value for "state"-parameter.
 
std::string generateCodeVerifier () const
 Generates PKCE code verifier.
 

Additional Inherited Members

- Protected Attributes inherited from tenduke::oauth::BaseOAuthClient
const std::shared_ptr< const OAuthConfigurationconfig
 OAuth configuration.
 
const std::shared_ptr< const tenduke::http::HTTPClienthttpClient
 HTTP client.
 
const std::shared_ptr< const tenduke::json::JSONParserjsonParser
 For parsing responses.
 
const std::shared_ptr< tenduke::time::Clockclock
 Clock to generate "expires-at" from "expires-in".
 

Constructor & Destructor Documentation

◆ OAuthPKCEFlow()

tenduke::oauth::pkce::OAuthPKCEFlow::OAuthPKCEFlow ( std::shared_ptr< const tenduke::oauth::OAuthConfiguration config,
std::shared_ptr< const tenduke::http::HTTPClient httpClient,
std::shared_ptr< const tenduke::net::URLParser urlParser,
std::shared_ptr< const tenduke::json::JSONParser jsonParser,
std::shared_ptr< const tenduke::utl::Base64Encoder base64Encoder,
std::shared_ptr< const tenduke::crypto::MessageDigestFactory messageDigestFactory,
std::shared_ptr< tenduke::time::Clock clock,
std::shared_ptr< tenduke::utl::random::RandomUrlSafeString randomUrlSafeString 
)

Constructs new instance.

Parameters
config-
httpClient-
urlParser-
jsonParser-
base64Encoder-
messageDigestFactory-
clock-
randomUrlSafeString-

Member Function Documentation

◆ authorize() [1/2]

std::unique_ptr< const ::OAuthBrowserAuthorizationRequest > tenduke::oauth::pkce::OAuthPKCEFlow::authorize ( const std::string &  scopes) const
overridevirtual

Creates OAuthRequest to start the OAuth-authorization flow.

Parameters
scopesscopes to authorize
Returns
the OAuth-request

Implements tenduke::oauth::OAuthBrowserFlow.

◆ authorize() [2/2]

std::unique_ptr< const ::OAuthBrowserAuthorizationRequest > tenduke::oauth::pkce::OAuthPKCEFlow::authorize ( const std::string &  scopes,
const std::map< std::string, std::string > &  additionalParameters 
) const
overridevirtual

Creates OAuthRequest to start the OAuth-authorization flow.

Parameters
scopesscopes to authorize
additionalParametersadditional parameters for the request
Returns
the OAuth-request

Implements tenduke::oauth::OAuthBrowserFlow.

◆ generateCodeVerifier()

std::string tenduke::oauth::pkce::OAuthPKCEFlow::generateCodeVerifier ( ) const
protected

Generates PKCE code verifier.

Returns
-

◆ generateState()

std::string tenduke::oauth::pkce::OAuthPKCEFlow::generateState ( ) const
protected

Generates value for "state"-parameter.

Returns
-

The documentation for this class was generated from the following files: