Ant*_*oly 3 java google-app-engine google-cloud-endpoints
我正在尝试HttpSession从Google Cloud Endpoints后端方法内部访问对象(或类似的API,让我获取会话属性)...
阅读这个答案我已经知道我可以注入一个HttpRequest对象作为参数.
我想要做的是检索以前由Servlet存储的facebook 访问令牌.
在Development Web Server中,我可以检索HttpSession并获取所需的属性:
@ApiMethod
public MyResponse getResponse(HttpServletRequest req) {
String accessToken = (String) req.getSession().getAttribute("accessToken");
}
Run Code Online (Sandbox Code Playgroud)
但是,一旦我将应用程序部署到GAE,检索到的访问令牌始终为空.
那么有没有办法从api方法中恢复会话属性?
如果没有,我如何从其他地方检索我的访问令牌?上述问题中的答案和评论建议使用数据存储,但我真的想不出一个关键的自然候选者...就GAE认证机制而言,我的用户甚至没有登录,我不知道如何access_token从Datastore/memcached或任何其他机制中检索当前用户.
我已经提交了一个功能请求来支持生产中的会话,因为我可以确认它现在无法正常工作.
现在,我建议您继续在标头中的后续请求中传递访问令牌.通过注入可以类似地获得头信息HttpServletRequest.