GAE / J注销但没有销毁会话

时间:2012-07-26 14:54:29

标签: java google-app-engine

我正在使用GAE1.6.3 / Java,联合登录,我使用着名的

com.google.appengine.api.users.UserService.createLogoutURL(String destinationURL, String authDomain)

创建create logout url。

使用开发服务器,在您登录后退出,当您尝试再次登录时,它将使用登录面板进行提示。现在输入另一个用户电子邮件,登录后,我将看到与以前用户相同的数据。 调试后我发现这是因为用户注销后会话没有被销毁,所以另一个用户登录系统会将他识别为以前的用户。

将我的应用程序发送到appspot后,当我退出然后尝试登录时,它没有带我到登录页面直接转到我的应用程序。我认为正确的行为应该像GMail一样。我认为根本原因与开发服务器相同。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当用户点击退出时,他们将退出App Engine应用程序但未注销联盟提供程序。它在以下文档中明确提到: https://developers.google.com/appengine/articles/openid

要清除应用程序中的会话,请使用session.invalidate()提供应用程序的注销URL并使会话无效,然后使用com.google.appengine.api.users.UserService.createLogoutURL(String destinationURL,String authDomain)重定向)