2

我目前正在创建一个基于和托管的Glassware应用程序。一切都很好......除了由于某种原因无法为提交 POST 请求的用户找到 Credentials 对象。JavaGoogle App EngineAuthUtil

当用户第一次导航到我的应用程序的主页并登录/验证时,Google Account一切正常。第一张卡片被发布到他们的时间线上,服务器会适当地响应所有传入的 POST。但是如果服务器闲置大约 15-20 分钟,那么所有 POST 请求都会开始失败。

经过一些调试后,我发现在闲置一段时间后AuthUtil.getCredential不再返回用户的对象。Credential解决此问题的唯一方法是强制用户返回我的主页并重新登录/验证。

这是我的应用程序的 servlet 在“doPost”中使用的代码片段:

Notification notification = jsonFactory.fromString(notiString, Notification.class);
String userId = notification.getUserToken();
LOG.info("SERVLET - Request contained user token: " + userId);
Credentials currUser = AuthUtil.getCredential(userId);
if (currUser != null)
{
    LOG.info("SERVLET - User found");
}
else
{
    LOG.severe("SERVLET - User NOT FOUND");
}

注意:我可以确认所有传入的 POST 都包含用户的令牌标识符字符串。

4

0 回答 0