如何在 Google Cloud Endpoints Javascript 客户端中设置自定义标头?
Posted
技术标签:
【中文标题】如何在 Google Cloud Endpoints Javascript 客户端中设置自定义标头?【英文标题】:How to set a custom header in Google Cloud Endpoints Javascript Client? 【发布时间】:2014-02-06 15:25:04 【问题描述】:我可以使用 javascript 客户端从 Google Cloud Endpoints 获取博客文章列表:
gapi.client.blog.posts.list().execute(function (resp)
console.log(resp);
);
但我需要在包含用户令牌(这可能是来自 Facebook 的访问令牌)的 Google Cloud Endpoints 请求中设置自定义标头值。我如何使用 Google 的 Javascript 客户端来做到这一点?我可以不使用 Google 的 Javascript 客户端来解决这个问题,但我宁愿使用它。
https://developers.google.com/appengine/docs/java/endpoints/consume_js https://developers.google.com/api-client-library/javascript/reference/referencedocs
编辑
看来我可以像这样传递自定义标头值:
gapi.auth.setToken(
access_token: 'this is my custom value'
);
不过,这似乎不是一个好习惯。有没有更好的方法来做到这一点?
【问题讨论】:
遇到了同样的问题并放弃了 jQuery 的 JavaScript 客户端($.ajax 与 Endpoints 后端配合良好)。setToken
有什么好运气吗?
能正常使用标题吗?这可行,但它在令牌之前附加了一个字符串“Bearer”,所以我必须做token = os.getenv('HTTP_AUTHORIZATION').split(" ")[1]
【参考方案1】:
您现在可以使用gapi.client.request 执行此操作,例如:
gapi.client.init(
'clientId': 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
'scope': 'your_scope'
).then(function()
return gapi.client.request(
'path': 'http://path/to/your/endpoints/api',
'headers': 'mycustomheader': 'myvalue'
)
).then(function(response)
console.log(response.result);
, function(reason)
console.log('Error: ' + reason.result.error.message);
);
另请参阅 Google API Javascript 客户端文档的 Getting Started 页面。
【讨论】:
【参考方案2】:尝试正常使用标头,但获取令牌并在需要显示令牌的位置添加包含它的变量。
【讨论】:
以上是关于如何在 Google Cloud Endpoints Javascript 客户端中设置自定义标头?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud Configuration - 自动启用 Refresh Endpoint 和 Git 监控
从 Java Cloud Endpoint 生成 API 文档
Cloud Endpoint 和 API Gateway (GCP) 是不是支持 Websocket?
Android:如何在GMAIL上获取SSO的YOUR_AUTHENTICATION_ENDPOINT?
如何使用 Google PubSub 确认 (@google-cloud/pubsub)
如何在 Google.Cloud.PubSub.V1 SubscriberServiceApiClientBuilder 中配置频道选项