Google app engine 注销Google帐户后仍登录Google App Engine

Google app engine 注销Google帐户后仍登录Google App Engine,google-app-engine,authentication,google-account,Google App Engine,Authentication,Google Account,我有一个Google App Engine Java应用程序,它(通过一个小工具)嵌入到Google站点中。该应用程序是为谷歌应用程序客户构建的,因此设置为需要该客户域的谷歌身份验证,就像它嵌入的站点一样 一般来说,此应用程序仅在网站内使用。用户永远不必显式登录应用程序-它从父框架继承其登录会话(假设浏览器中未阻止第三方cookie) 根据以下文档,我们使用标准的UserService模式: UserService userService = UserServiceFactory.getUser

我有一个Google App Engine Java应用程序,它(通过一个小工具)嵌入到Google站点中。该应用程序是为谷歌应用程序客户构建的,因此设置为需要该客户域的谷歌身份验证,就像它嵌入的站点一样

一般来说,此应用程序仅在网站内使用。用户永远不必显式登录应用程序-它从父框架继承其登录会话(假设浏览器中未阻止第三方cookie)

根据以下文档,我们使用标准的
UserService
模式:

UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();

if (user != null) {
    // do ALL the things!
} else {
    resp.sendRedirect(userService.createLoginURL(req.getRequestURI()); 
}
登录用户将进入
myapp.appspot.com
域的
SACSID
cookie集,该域是
ACSID
cookie的HTTPS版本

当用户从包含站点注销时,通过单击其Google帐户中的标准“注销”按钮,用户现在已从其Google帐户注销,但他们仍然可以访问该应用程序
userService.isUserLoggedIn()也返回true

(我们不能让用户使用App Engine注销URL注销,因为通常情况下,他们甚至不知道自己正在使用App Engine应用程序-这只是网站上嵌入的内容。)

如果您通过直接浏览servlet(而不是站点)来复制此信息,然后在用户注销后2-3分钟注销您的Google帐户,UserService会检测到这一点,并按预期将用户重定向到登录屏幕。但是,在人们可能会注销父站点,然后在短时间内再次登录的情况下,有时人们会在应用程序中获得错误的权限级别

我们如何能立即发现并做出适当反应