1#ifndef _DITTO_AUTHENTICATOR_
2#define _DITTO_AUTHENTICATOR_
6#include "AuthenticationCallback.hpp"
7#include "AuthenticationStatus.hpp"
10#include "dittoffi.hpp"
18class AuthenticationStatusObserver;
20class DittoHandleWrapper;
27class Authenticator :
public std::enable_shared_from_this<Authenticator> {
31 friend class LoginProvider;
33 friend class ValidityListener;
50 std::string token, std::string
provider,
51 std::function<
void(std::unique_ptr<DittoError>)>
login_handler)
const;
66 std::function<
void(std::unique_ptr<DittoError>)>
login_handler)
const;
87 std::shared_ptr<Observer>
94 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper;
95 std::weak_ptr<Ditto::Fields> weak_ditto_fields;
96 std::weak_ptr<AuthenticationCallback> callback;
97 std::vector<std::weak_ptr<AuthenticationStatusObserver>> status_observers;
99 Authenticator(std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper,
101 std::shared_ptr<AuthenticationCallback> callback);
103 void stop_status_observer(
105 void validity_updated(
bool web_valid,
bool x509_valid);
Definition AuthenticationStatusObserver.hpp:15
Provides access to authentication information and methods for logging on to Ditto Cloud....
Definition Authenticator.hpp:27
std::shared_ptr< Observer > observe_status(std::function< void(AuthenticationStatus status)> callback)
Definition Authenticator.cpp:77
void logout(std::function< void(Ditto)> cleanup=[](Ditto ditto) {}) const
Log out of Ditto.
Definition Authenticator.cpp:61
void login_with_token(std::string token, std::string provider, std::function< void(std::unique_ptr< DittoError >)> login_handler) const
Log in to Ditto with a third-party token.
Definition Authenticator.cpp:27
AuthenticationStatus get_status() const
Definition Authenticator.cpp:25
void login_with_credentials(std::string username, std::string password, std::string provider, std::function< void(std::unique_ptr< DittoError >)> login_handler) const
Log in to Ditto with a username and password.
Definition Authenticator.cpp:44
The entrypoint to the Ditto SDK.
Definition Ditto.hpp:32
Test a Ditto Cloud app with weak shared token authentication ("Playground mode"). This is not secure ...
Definition Identity.hpp:225
Run Ditto in secure production mode, logging on to Ditto Cloud or on on-premises authentication serve...
Definition Identity.hpp:191
Provides info about the authentication status.
Definition AuthenticationStatus.hpp:10