10Duke Scale C++ Client
Loading...
Searching...
No Matches
IdTokenSession.h
1#ifndef TENDUKE_OIDC_IDTOKENSESSION_H
2#define TENDUKE_OIDC_IDTOKENSESSION_H
3
4#include "../session/OIDCSessionImpl.h"
5
6namespace tenduke { namespace oidc {
7
19{
20public:
32 std::unique_ptr<tenduke::oidc::OIDCState> state,
33 const std::shared_ptr<const tenduke::oidc::OIDCLogin> &oidc,
34 const std::shared_ptr<const tenduke::oidc::OIDCClient> &oidcClient,
35 const std::shared_ptr<tenduke::time::Clock> &clock,
36 const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener> &eventListener,
37 uint64_t validitySafetyMarginS,
38 const std::chrono::seconds &loginTimeout
39 );
40
41 // `tenduke::oidc::OIDCSessionImpl` specialization
42public:
43 bool isValid() override;
44 void refreshOrLogin() override;
45};
46
47}}
48
49#endif //TENDUKE_OIDC_IDTOKENSESSION_H
A tenduke::oidc::OIDCSession, which uses ID-token as the source-of-truth for expiration times.
Definition IdTokenSession.h:19
void refreshOrLogin() override
Performs either refresh, or if it fails, new login.
Definition IdTokenSession.cpp:25
bool isValid() override
Checks that local session is valid.
Definition IdTokenSession.cpp:9
Default implementation of tenduke::oidc::OIDCSession.
Definition OIDCSessionImpl.h:23
std::shared_ptr< tenduke::oidc::OIDCState > state
The OIDC-state.
Definition OIDCSessionImpl.h:73
const std::chrono::milliseconds loginTimeout
Login timeout.
Definition OIDCSessionImpl.h:77
const std::uint64_t validitySafetyMarginS
Safety margin in seconds for checking if access token has expired.
Definition OIDCSessionImpl.h:81
const std::shared_ptr< tenduke::time::Clock > clock
Clock for checking session validity locally.
Definition OIDCSessionImpl.h:84
const std::shared_ptr< const tenduke::oidc::OIDCClient > oidcClient
The OIDC-client.
Definition OIDCSessionImpl.h:88
const std::shared_ptr< const tenduke::oidc::OIDCLogin > oidc
Service to perform OIDC login.
Definition OIDCSessionImpl.h:86
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7