27class Authenticator :
public std::enable_shared_from_this<Authenticator> {
29 friend class OnlineWithAuthenticationIdentity;
30 friend class OnlinePlaygroundIdentity;
31 friend class LoginProvider;
32 friend class AuthenticationStatusObserver;
33 friend class ValidityListener;
50 std::string token, std::string provider,
51 std::function<
void(std::unique_ptr<DittoError>)> login_handler)
const;
65 std::string username, std::string password, std::string provider,
66 std::function<
void(std::unique_ptr<DittoError>)> login_handler)
const;
80 void logout(std::function<
void(Ditto)> cleanup = [](Ditto ditto) {})
const;
87 std::shared_ptr<Observer>
90 ~Authenticator() =
default;
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,
100 std::weak_ptr<Ditto::Fields> ditto_fields,
101 std::shared_ptr<AuthenticationCallback> callback);
103 void stop_status_observer(
104 std::shared_ptr<AuthenticationStatusObserver> status_observer);
105 void validity_updated(
bool web_valid,
bool x509_valid);
106 void authentication_expiring(uint32_t time_remaining);
107 void update_and_notify(
bool shouldNotify);
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
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