• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
6 #define GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
7 
8 #include <map>
9 #include <string>
10 #include <vector>
11 
12 class GoogleServiceAuthError;
13 
14 namespace net {
15 typedef std::vector<std::string> ResponseCookies;
16 }
17 
18 typedef std::map<std::string, std::string> UserInfoMap;
19 
20 // An interface that defines the callbacks for objects that
21 // GaiaAuthFetcher can return data to.
22 class GaiaAuthConsumer {
23  public:
24   struct ClientLoginResult {
25     ClientLoginResult();
26     ClientLoginResult(const std::string& new_sid,
27                       const std::string& new_lsid,
28                       const std::string& new_token,
29                       const std::string& new_data);
30     ~ClientLoginResult();
31 
32     bool operator==(const ClientLoginResult &b) const;
33 
34     std::string sid;
35     std::string lsid;
36     std::string token;
37     // TODO(chron): Remove the data field later. Don't use it if possible.
38     std::string data;  // Full contents of ClientLogin return.
39     bool two_factor;  // set to true if there was a TWO_FACTOR "failure".
40   };
41 
42   struct ClientOAuthResult {
43     ClientOAuthResult();
44     ClientOAuthResult(const std::string& new_refresh_token,
45                       const std::string& new_access_token,
46                       int new_expires_in_secs);
47     ~ClientOAuthResult();
48 
49     bool operator==(const ClientOAuthResult &b) const;
50 
51     // OAuth2 refresh token.  Used to mint new access tokens when needed.
52     std::string refresh_token;
53 
54     // OAuth2 access token.  Token to pass to endpoints that require oauth2
55     // authentication.
56     std::string access_token;
57 
58     // The lifespan of |access_token| in seconds.
59     int expires_in_secs;
60   };
61 
~GaiaAuthConsumer()62   virtual ~GaiaAuthConsumer() {}
63 
OnClientLoginSuccess(const ClientLoginResult & result)64   virtual void OnClientLoginSuccess(const ClientLoginResult& result) {}
OnClientLoginFailure(const GoogleServiceAuthError & error)65   virtual void OnClientLoginFailure(const GoogleServiceAuthError& error) {}
66 
OnIssueAuthTokenSuccess(const std::string & service,const std::string & auth_token)67   virtual void OnIssueAuthTokenSuccess(const std::string& service,
68                                        const std::string& auth_token) {}
OnIssueAuthTokenFailure(const std::string & service,const GoogleServiceAuthError & error)69   virtual void OnIssueAuthTokenFailure(const std::string& service,
70                                        const GoogleServiceAuthError& error) {}
71 
OnClientOAuthSuccess(const ClientOAuthResult & result)72   virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) {}
OnClientOAuthFailure(const GoogleServiceAuthError & error)73   virtual void OnClientOAuthFailure(const GoogleServiceAuthError& error) {}
74 
OnOAuth2RevokeTokenCompleted()75   virtual void OnOAuth2RevokeTokenCompleted() {}
76 
OnGetUserInfoSuccess(const UserInfoMap & data)77   virtual void OnGetUserInfoSuccess(const UserInfoMap& data) {}
OnGetUserInfoFailure(const GoogleServiceAuthError & error)78   virtual void OnGetUserInfoFailure(const GoogleServiceAuthError& error) {}
79 
OnUberAuthTokenSuccess(const std::string & token)80   virtual void OnUberAuthTokenSuccess(const std::string& token) {}
OnUberAuthTokenFailure(const GoogleServiceAuthError & error)81   virtual void OnUberAuthTokenFailure(const GoogleServiceAuthError& error) {}
82 
OnMergeSessionSuccess(const std::string & data)83   virtual void OnMergeSessionSuccess(const std::string& data) {}
OnMergeSessionFailure(const GoogleServiceAuthError & error)84   virtual void OnMergeSessionFailure(const GoogleServiceAuthError& error) {}
85 
OnListAccountsSuccess(const std::string & data)86   virtual void OnListAccountsSuccess(const std::string& data) {}
OnListAccountsFailure(const GoogleServiceAuthError & error)87   virtual void OnListAccountsFailure(const GoogleServiceAuthError& error) {}
88 };
89 
90 #endif  // GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
91