#ifndef GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
#define GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
#include <map>
#include <string>
#include <vector>
#include "base/component_export.h"
class GoogleServiceAuthError;
class OAuthMultiloginResult;
class COMPONENT_EXPORT(GOOGLE_APIS) GaiaAuthConsumer {
public:
struct COMPONENT_EXPORT(GOOGLE_APIS) ClientOAuthResult {
ClientOAuthResult(const std::string& refresh_token,
const std::string& access_token,
int expires_in_secs,
bool is_child_account,
bool is_under_advanced_protection,
bool is_bound_to_key);
ClientOAuthResult(const ClientOAuthResult& other);
ClientOAuthResult& operator=(const ClientOAuthResult& other);
~ClientOAuthResult();
friend bool operator==(const ClientOAuthResult&,
const ClientOAuthResult&) = default;
std::string refresh_token;
std::string access_token;
int expires_in_secs;
bool is_child_account;
bool is_under_advanced_protection;
bool is_bound_to_key;
};
enum class TokenRevocationStatus {
kSuccess,
kConnectionCanceled,
kConnectionFailed,
kConnectionTimeout,
kInvalidToken,
kInvalidRequest,
kServerError,
kUnknownError,
};
enum class ReAuthProofTokenStatus : int {
kSuccess = 0,
kInvalidRequest = 1,
kInvalidGrant = 2,
kUnauthorizedClient = 3,
kInsufficientScope = 4,
kCredentialNotSet = 5,
kNetworkError = 6,
kUnknownError = 7
};
virtual ~GaiaAuthConsumer() {}
virtual void OnClientOAuthCode(const std::string& auth_code) {}
virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) {}
virtual void OnClientOAuthFailure(const GoogleServiceAuthError& error) {}
virtual void OnOAuth2RevokeTokenCompleted(TokenRevocationStatus status) {}
virtual void OnListAccountsSuccess(const std::string& data) {}
virtual void OnListAccountsFailure(const GoogleServiceAuthError& error) {}
virtual void OnOAuthMultiloginFinished(const OAuthMultiloginResult& result) {}
virtual void OnLogOutSuccess() {}
virtual void OnLogOutFailure(const GoogleServiceAuthError& error) {}
virtual void OnGetCheckConnectionInfoSuccess(const std::string& data) {}
virtual void OnGetCheckConnectionInfoError(
const GoogleServiceAuthError& error) {}
virtual void OnReAuthProofTokenSuccess(
const std::string& reauth_proof_token) {}
virtual void OnReAuthProofTokenFailure(const ReAuthProofTokenStatus error) {}
};
#endif