| Index: remoting/host/signaling_connector.cc
|
| diff --git a/remoting/host/signaling_connector.cc b/remoting/host/signaling_connector.cc
|
| index 67c142fb3019e6bf5819a3b33d772d560b22f9a4..ad9fbe5dc1d45a9042df474b080ea753bc2f449c 100644
|
| --- a/remoting/host/signaling_connector.cc
|
| +++ b/remoting/host/signaling_connector.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/callback.h"
|
| +#include "base/strings/string_util.h"
|
| #include "google_apis/google_api_keys.h"
|
| #include "net/url_request/url_fetcher.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| @@ -26,9 +27,11 @@ const int kTokenUpdateTimeBeforeExpirySeconds = 60;
|
|
|
| SignalingConnector::OAuthCredentials::OAuthCredentials(
|
| const std::string& login_value,
|
| - const std::string& refresh_token_value)
|
| + const std::string& refresh_token_value,
|
| + bool is_service_account)
|
| : login(login_value),
|
| - refresh_token(refresh_token_value) {
|
| + refresh_token(refresh_token_value),
|
| + is_service_account(is_service_account) {
|
| }
|
|
|
| SignalingConnector::SignalingConnector(
|
| @@ -228,12 +231,20 @@ void SignalingConnector::RefreshOAuthToken() {
|
| LOG(INFO) << "Refreshing OAuth token.";
|
| DCHECK(!refreshing_oauth_token_);
|
|
|
| + // Service accounts use different API keys, as they use the client app flow.
|
| + google_apis::OAuth2Client oauth2_client;
|
| + if (oauth_credentials_->is_service_account) {
|
| + oauth2_client = google_apis::CLIENT_REMOTING_HOST;
|
| + } else {
|
| + oauth2_client = google_apis::CLIENT_REMOTING;
|
| + }
|
| +
|
| gaia::OAuthClientInfo client_info = {
|
| - google_apis::GetOAuth2ClientID(google_apis::CLIENT_REMOTING),
|
| - google_apis::GetOAuth2ClientSecret(google_apis::CLIENT_REMOTING),
|
| - // Redirect URL is only used when getting tokens from auth code. It
|
| - // is not required when getting access tokens.
|
| - ""
|
| + google_apis::GetOAuth2ClientID(oauth2_client),
|
| + google_apis::GetOAuth2ClientSecret(oauth2_client),
|
| + // Redirect URL is only used when getting tokens from auth code. It
|
| + // is not required when getting access tokens.
|
| + ""
|
| };
|
|
|
| refreshing_oauth_token_ = true;
|
|
|