gpt4 book ai didi

google-app-engine - 使用 Google Cloud Endpoints JavaScript 客户端时在 HTTP 请求中包含 cookie

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:08 24 4
gpt4 key购买 nike

我目前正在使用 Google Cloud Endpoint 生成的 JavaScript 客户端对我的后端进行 API 调用。问题是我的页面的 cookie 没有被添加到 HTTP 请求中。如何将 Gitkit gtoken cookie 添加到我的请求中。

  • 后端是 Google App Engine Java
  • 使用 Goole Cloud Endpoints 构建我的 API
  • 使用 Google Cloud Endpoints JavaScript 网络客户端加载如下 gapi.client.load('myApi', 'v1', resourceLoaded, 'https://my-project-id.appspot.com/_ah/api');

我已经在后端配置了 Google Cloud Endpoints 以允许 cookie。 auth = @ApiAuth(allowCookieAuth = AnnotationBoolean.TRUE)

我的端点如下所示。

@ApiMethod(path = "user-account")
public UserAccount get(HttpServletRequest httpRequest) {

GitkitUser gitkitUser = Gitkit.validate(httpRequest); // returns null

Cookie[] cookies = httpRequest.getCookies();
log.severe("# of cookies: " + cookies.length);
for (Cookie cookie : cookies) {
log.severe("cookie name: " + cookie.getName());
log.severe("cookie value: " + cookie.getValue());
}

/*
* Logs 1 for # of cookies, with a cookie name of "G_ENABLED_IDPS"
* a value of "google". No gtoken cookie, even though I have
* checked and there is one!
*/

...

}

我正在使用 Google Cloud Endpoints JS 客户端进行调用。

gapi.client.myApi.userAccountResource.get().execute(function (resp){
...
});

我必须做些什么来确保 Endpoints JS 客户端在其请求中包含 gtoken cookie?

最佳答案

你最好添加 cookies storage + request headers 的截图,并创建一个 plunker/jsfiddle/jsbin 来重现问题。

Cookie 可能未设置或未发送到服务器。您需要定位问题所在。如果它是由浏览器通过网络发送的,那么问题出在服务器端。如果它在 cookie 存储中但未发送,则为客户端问题。如果它不在存储中,那么就没有什么可发送的,找出它们为什么根本不在客户端是一个不同的问题。

您可以在浏览器的开发工具中查看 cookie 和请求 header 。是的,如果 cookie 未过期并与主机和路径前缀匹配,则会自动发送。

关于google-app-engine - 使用 Google Cloud Endpoints JavaScript 客户端时在 HTTP 请求中包含 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com