3

我正在尝试HttpSession从 Google Cloud Endpoints 后端方法内部访问对象(或让我获取会话属性的类似 API)...

阅读此答案,我了解到我可以将HttpRequest对象作为参数注入。

我要做的是检索以前由 Servlet 存储的 facebook访问令牌。

在开发 Web 服务器中,我可以检索HttpSession并获取所需的属性:

@ApiMethod
public MyResponse getResponse(HttpServletRequest req) {
    String accessToken = (String) req.getSession().getAttribute("accessToken");
}

但是,一旦我将应用程序部署到 GAE,检索到的访问令牌始终为空。

那么有没有办法从 api 方法中恢复会话属性?

如果没有,我如何从其他地方检索我的访问令牌?上述问题中的答案和评论建议使用数据存储,但我真的想不出一个好的自然候选密钥......就GAE身份验证机制而言,我的用户甚至没有登录,我不知道如何access_token从 Datastore / memcached 或任何其他机制中检索当前用户的。

4

1 回答 1

6

我已提交功能请求以支持生产中的会话,因为我可以确认它现在无法正常工作。

现在,我建议您继续在标头中的后续请求中传递访问令牌。标头信息同样可以通过注入的HttpServletRequest.

于 2013-10-22T18:10:36.450 回答