// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_BASE_OAUTH_TOKEN_GETTER_IMPL_H_ #define REMOTING_BASE_OAUTH_TOKEN_GETTER_IMPL_H_ #include "base/containers/queue.h" #include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "google_apis/gaia/gaia_oauth_client.h" #include "remoting/base/oauth_token_getter.h" namespace network { class SharedURLLoaderFactory; } // namespace network namespace remoting { // OAuthTokenGetter accepts an authorization code in the intermediate // credentials or a refresh token in the authorization credentials. It will // convert authorization code into a refresh token and access token. // OAuthTokenGetter will exchange refresh tokens for access tokens and will // cache access tokens, refreshing them as needed. // On first usage it is likely an application will only have an auth code, // from this you can get a refresh token which can be reused next app launch. class OAuthTokenGetterImpl : public OAuthTokenGetter, public gaia::GaiaOAuthClient::Delegate { … }; } // namespace remoting #endif // REMOTING_BASE_OAUTH_TOKEN_GETTER_IMPL_H_