10Duke Scale C++ Client
Loading...
Searching...
No Matches
DefaultOAuthDeviceFlow.h
1#ifndef TENDUKE_OAUTH_DEVICE_DEFAULTOAUTHDEVICEFLOW_H
2#define TENDUKE_OAUTH_DEVICE_DEFAULTOAUTHDEVICEFLOW_H
3
4#include "./OAuthDeviceFlow.h"
5#include "oauth/BaseOAuthClient.h"
6#include "oauth/OAuthConfiguration.h"
7#include "oauth/OAuthAuthorizationRequest.h"
8
9#include "http/HTTPClient.h"
10#include "json/JSONParser.h"
11#include "time/Clock.h"
12
13#include <cstdint>
14#include <map>
15#include <memory>
16#include <string>
17
18namespace tenduke { namespace oauth { namespace device {
19
26{
27public:
38 const std::shared_ptr<const tenduke::oauth::OAuthConfiguration> &oauthConfiguration,
39 const std::shared_ptr<const tenduke::http::HTTPClient> &httpClient,
40 const std::shared_ptr<const tenduke::json::JSONParser> &jsonParser,
41 const std::shared_ptr<tenduke::time::Clock> &clock,
42 std::uint64_t defaultClientTimeoutS = tenduke::oauth::device::DEVICEFLOW_DOES_NOT_TIMEOUT
43 );
44
45 // tenduke::oauth::device::OAuthDeviceFlow interface
46public:
47 std::unique_ptr<tenduke::oauth::device::OAuthDeviceFlowAuthorizationRequest> authorize(
48 const std::string &scope,
49 const std::map<std::string, std::string> &additionalParameters
50 ) const override;
51
52private:
53 const std::uint64_t defaultClientTimeoutS;
54};
55
56
57}}}
58
59#endif // TENDUKE_OAUTH_DEVICE_DEFAULTOAUTHDEVICEFLOW_H
Base class for OAuth-clients.
Definition BaseOAuthClient.h:27
const std::shared_ptr< const tenduke::json::JSONParser > jsonParser
For parsing responses.
Definition BaseOAuthClient.h:59
const std::shared_ptr< tenduke::time::Clock > clock
Clock to generate "expires-at" from "expires-in".
Definition BaseOAuthClient.h:61
const std::shared_ptr< const tenduke::http::HTTPClient > httpClient
HTTP client.
Definition BaseOAuthClient.h:57
Default implementation of tenduke::oauth::device::OAuthDeviceFlow.
Definition DefaultOAuthDeviceFlow.h:26
std::unique_ptr< tenduke::oauth::device::OAuthDeviceFlowAuthorizationRequest > authorize(const std::string &scope, const std::map< std::string, std::string > &additionalParameters) const override
Starts authorization.
Definition DefaultOAuthDeviceFlow.cpp:15
OAuth DeviceFlow.
Definition OAuthDeviceFlow.h:20
const std::uint64_t DEVICEFLOW_DOES_NOT_TIMEOUT
"Magic" timeout value to denote that the request does not time out at the client end.
Definition OAuthDeviceFlowAuthorizationRequest.h:14
OAuth services.
Definition AccessTokenRequestAuthenticator.h:8
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7