Index: components/copresence/rpc/http_post.cc |
diff --git a/components/copresence/rpc/http_post.cc b/components/copresence/rpc/http_post.cc |
index 3f2f7a5e3eb1aaee8c6aec12a562e4e3c0550551..bde0ed336e42ab796bfe6719ad42329577e94725 100644 |
--- a/components/copresence/rpc/http_post.cc |
+++ b/components/copresence/rpc/http_post.cc |
@@ -25,8 +25,9 @@ const char HttpPost::kTracingField[] = "trace"; |
HttpPost::HttpPost(net::URLRequestContextGetter* url_context_getter, |
const std::string& server_host, |
const std::string& rpc_name, |
- const std::string& tracing_token, |
std::string api_key, |
+ const std::string& auth_token, |
+ const std::string& tracing_token, |
const google::protobuf::MessageLite& request_proto) { |
// Create the base URL to call. |
GURL url(server_host + "/" + rpc_name); |
@@ -37,16 +38,19 @@ HttpPost::HttpPost(net::URLRequestContextGetter* url_context_getter, |
url, kTracingField, "token:" + tracing_token); |
} |
+ // If we have no auth token, authenticate using the API key. |
// If no API key is specified, use the Chrome API key. |
- if (api_key.empty()) { |
+ if (auth_token.empty()) { |
+ if (api_key.empty()) { |
#ifdef GOOGLE_CHROME_BUILD |
- DCHECK(google_apis::HasKeysConfigured()); |
- api_key = google_apis::GetAPIKey(); |
+ DCHECK(google_apis::HasKeysConfigured()); |
+ api_key = google_apis::GetAPIKey(); |
#else |
- LOG(ERROR) << "No Copresence API key provided"; |
+ LOG(ERROR) << "No Copresence API key provided"; |
#endif |
+ } |
+ url = net::AppendQueryParameter(url, kApiKeyField, api_key); |
} |
- url = net::AppendQueryParameter(url, kApiKeyField, api_key); |
// Serialize the proto for transmission. |
std::string request_data; |
@@ -63,6 +67,9 @@ HttpPost::HttpPost(net::URLRequestContextGetter* url_context_getter, |
net::LOAD_DO_NOT_SEND_COOKIES | |
net::LOAD_DO_NOT_SEND_AUTH_DATA); |
url_fetcher_->SetUploadData("application/x-protobuf", request_data); |
+ if (!auth_token.empty()) { |
+ url_fetcher_->AddExtraRequestHeader("Authorization: Bearer " + auth_token); |
+ } |
} |
HttpPost::~HttpPost() {} |