1 // Copyright 2014 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 COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_OAUTH_HELPER_H_ 6 #define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_OAUTH_HELPER_H_ 7 8 #include <string> 9 10 #include "base/memory/scoped_ptr.h" 11 #include "google_apis/gaia/gaia_auth_consumer.h" 12 #include "google_apis/gaia/gaia_auth_fetcher.h" 13 14 // Retrieves the OAuth2 information from an already signed in cookie jar. 15 // The information retrieved is: username, refresh token. 16 class SigninOAuthHelper : public GaiaAuthConsumer { 17 public: 18 // Implemented by users of SigninOAuthHelper to know then helper is finished. 19 class Consumer { 20 public: ~Consumer()21 virtual ~Consumer() {} 22 23 // Called when all the information is retrieved successfully. |email| 24 // and |display_email| correspond to the gaia properties called "email" 25 // and "displayEmail" associated with the signed in account. |refresh_token| 26 // is the account's login-scoped oauth2 refresh token. OnSigninOAuthInformationAvailable(const std::string & email,const std::string & display_email,const std::string & refresh_token)27 virtual void OnSigninOAuthInformationAvailable( 28 const std::string& email, 29 const std::string& display_email, 30 const std::string& refresh_token) {} 31 32 // Called when an error occurs while getting the information. OnSigninOAuthInformationFailure(const GoogleServiceAuthError & error)33 virtual void OnSigninOAuthInformationFailure( 34 const GoogleServiceAuthError& error) {} 35 }; 36 37 explicit SigninOAuthHelper(net::URLRequestContextGetter* getter, 38 const std::string& session_index, 39 Consumer* consumer); 40 virtual ~SigninOAuthHelper(); 41 42 private: 43 // Overridden from GaiaAuthConsumer. 44 virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) OVERRIDE; 45 virtual void OnClientOAuthFailure(const GoogleServiceAuthError& error) 46 OVERRIDE; 47 virtual void OnClientLoginSuccess(const ClientLoginResult& result) OVERRIDE; 48 virtual void OnClientLoginFailure(const GoogleServiceAuthError& error) 49 OVERRIDE; 50 virtual void OnGetUserInfoSuccess(const UserInfoMap& data) OVERRIDE; 51 virtual void OnGetUserInfoFailure(const GoogleServiceAuthError& error) 52 OVERRIDE; 53 54 GaiaAuthFetcher gaia_auth_fetcher_; 55 std::string refresh_token_; 56 Consumer* consumer_; 57 58 DISALLOW_COPY_AND_ASSIGN(SigninOAuthHelper); 59 }; 60 61 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_OAUTH_HELPER_H_ 62