123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
- #define GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
- #include <map>
- #include <string>
- #include <vector>
- class GoogleServiceAuthError;
- class OAuthMultiloginResult;
- // An interface that defines the callbacks for objects that
- // GaiaAuthFetcher can return data to.
- class GaiaAuthConsumer {
- public:
- struct ClientLoginResult {
- ClientLoginResult();
- ClientLoginResult(const std::string& new_sid,
- const std::string& new_lsid,
- const std::string& new_token,
- const std::string& new_data);
- ClientLoginResult(const ClientLoginResult& other);
- ~ClientLoginResult();
- bool operator==(const ClientLoginResult &b) const;
- std::string sid;
- std::string lsid;
- std::string token;
- // TODO(chron): Remove the data field later. Don't use it if possible.
- std::string data; // Full contents of ClientLogin return.
- };
- struct ClientOAuthResult {
- ClientOAuthResult(const std::string& new_refresh_token,
- const std::string& new_access_token,
- int new_expires_in_secs,
- bool is_child_account,
- bool is_under_advanced_protection);
- ClientOAuthResult(const ClientOAuthResult& other);
- ~ClientOAuthResult();
- bool operator==(const ClientOAuthResult &b) const;
- // OAuth2 refresh token. Used to mint new access tokens when needed.
- std::string refresh_token;
- // OAuth2 access token. Token to pass to endpoints that require oauth2
- // authentication.
- std::string access_token;
- // The lifespan of |access_token| in seconds.
- int expires_in_secs;
- // Whether the authenticated user is a child account.
- bool is_child_account;
- // Whether the authenticated user is in advanced protection program.
- bool is_under_advanced_protection;
- };
- // Possible server responses to a token revocation request.
- enum class TokenRevocationStatus {
- // Token revocation succeeded.
- kSuccess,
- // Network connection was canceled, no response was received.
- kConnectionCanceled,
- // Network connection failed, no response was received.
- kConnectionFailed,
- // Network connection timed out, no response was received.
- kConnectionTimeout,
- // The token is unknown or invalid.
- kInvalidToken,
- // The request was malformed.
- kInvalidRequest,
- // Internal server error.
- kServerError,
- // Other error.
- kUnknownError,
- };
- enum class ReAuthProofTokenStatus : int {
- // Successful request: used only to control FakeGaia response.
- kSuccess = 0,
- // Request had invalid format.
- kInvalidRequest = 1,
- // Password was incorrect.
- kInvalidGrant = 2,
- // Unauthorized OAuth client.
- kUnauthorizedClient = 3,
- // Scope of OAuth token was insufficient.
- kInsufficientScope = 4,
- // No credential specified.
- kCredentialNotSet = 5,
- // A network error.
- kNetworkError = 6,
- // Other error.
- kUnknownError = 7
- };
- virtual ~GaiaAuthConsumer() {}
- virtual void OnClientLoginSuccess(const ClientLoginResult& result) {}
- virtual void OnClientLoginFailure(const GoogleServiceAuthError& error) {}
- 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 OnUberAuthTokenSuccess(const std::string& token) {}
- virtual void OnUberAuthTokenFailure(const GoogleServiceAuthError& error) {}
- virtual void OnMergeSessionSuccess(const std::string& data) {}
- virtual void OnMergeSessionFailure(const GoogleServiceAuthError& error) {}
- 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 // GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
|