Ditto 1.1.7
Public Member Functions | List of all members
ditto::Authenticator Class Reference

Provides access to authentication information and methods for logging on to Ditto Cloud. Relevant when using an OnlineWithAuthentication or an Online identity. More...

#include <Authenticator.hpp>

Inheritance diagram for ditto::Authenticator:

Public Member Functions

AuthenticationStatus get_status () const
 
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. More...
 
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. More...
 
void logout (std::function< void(Ditto)> cleanup=[](Ditto ditto) {}) const
 Log out of Ditto. More...
 
std::shared_ptr< Observerobserve_status (std::function< void(AuthenticationStatus status)> callback)
 
bool is_authenticated () const
 
std::string user_id () const
 

Detailed Description

Provides access to authentication information and methods for logging on to Ditto Cloud. Relevant when using an OnlineWithAuthentication or an Online identity.

Member Function Documentation

◆ get_status()

AuthenticationStatus ditto::Authenticator::get_status ( ) const

Returns the current authentication status.

◆ is_authenticated()

bool ditto::Authenticator::is_authenticated ( ) const

Query whether Ditto has a valid authentication token.

This will only be true when using an OnlineWithAuthentication or an Online identity, after a successful login. If the authentication token is allowed to expire then it will return false instead.

Deprecated:
: use status.is_authenticated() instead.

◆ login_with_credentials()

void ditto::Authenticator::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.

Parameters
[in]usernamethe username component of the credentials used for log in.
[in]passwordthe password component of the credentials used for log in.
[in]providerthe name of the authentication provider.
[in]login_handlera lambda that will get called when the login attempt has completed.

◆ login_with_token()

void ditto::Authenticator::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.

Parameters
[in]tokenthe authentication token required to log in.
[in]providerthe name of the authentication provider.
[in]login_handlera lambda that will get called when the login attempt has completed.

◆ logout()

void ditto::Authenticator::logout ( std::function< void(Ditto)>  cleanup = [](Ditto ditto) {}) const

Log out of Ditto.

This will stop sync, shut down all replication sessions, and remove any cached authentication credentials. Note that this does not remove any data from the store. If you wish to delete data from the store then use the optional cleanupAction argument to perform any required cleanup.

Parameters
[in]cleanupAn optional lambda that will be called with the relevant `Ditto instance as the sole argument that allows you to perform any required cleanup of the store as part of the logout process.

◆ observe_status()

std::shared_ptr< Observer > ditto::Authenticator::observe_status ( std::function< void(AuthenticationStatus status)>  callback)

Registers a function that will be called whenever authentication status changes. Returns an Observer that needs to be retained as long as you want to receive the updates.

◆ user_id()

std::string ditto::Authenticator::user_id ( ) const

Return the currently logged-in user ID.

This will return the empty string if there is no valid authentication or OnlineWithAuthentication/Online mode is not being used.

Deprecated:
: use status.user_id() instead.