gaia_auth_consumer.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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
12class GoogleServiceAuthError;
13
14namespace net {
15typedef std::vector<std::string> ResponseCookies;
16}
17
18typedef std::map<std::string, std::string> UserInfoMap;
19
20// An interface that defines the callbacks for objects that
21// GaiaAuthFetcher can return data to.
22class 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
62  virtual ~GaiaAuthConsumer() {}
63
64  virtual void OnClientLoginSuccess(const ClientLoginResult& result) {}
65  virtual void OnClientLoginFailure(const GoogleServiceAuthError& error) {}
66
67  virtual void OnIssueAuthTokenSuccess(const std::string& service,
68                                       const std::string& auth_token) {}
69  virtual void OnIssueAuthTokenFailure(const std::string& service,
70                                       const GoogleServiceAuthError& error) {}
71
72  virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) {}
73  virtual void OnClientOAuthFailure(const GoogleServiceAuthError& error) {}
74
75  virtual void OnClientOAuthCodeSuccess(const std::string& auth_code) {}
76  virtual void OnClientOAuthCodeFailure(const GoogleServiceAuthError& error) {}
77
78  virtual void OnOAuth2RevokeTokenCompleted() {}
79
80  virtual void OnGetUserInfoSuccess(const UserInfoMap& data) {}
81  virtual void OnGetUserInfoFailure(const GoogleServiceAuthError& error) {}
82
83  virtual void OnUberAuthTokenSuccess(const std::string& token) {}
84  virtual void OnUberAuthTokenFailure(const GoogleServiceAuthError& error) {}
85
86  virtual void OnMergeSessionSuccess(const std::string& data) {}
87  virtual void OnMergeSessionFailure(const GoogleServiceAuthError& error) {}
88
89  virtual void OnListAccountsSuccess(const std::string& data) {}
90  virtual void OnListAccountsFailure(const GoogleServiceAuthError& error) {}
91};
92
93#endif  // GOOGLE_APIS_GAIA_GAIA_AUTH_CONSUMER_H_
94