Google app engine 注销Google帐户后仍登录Google App Engine
我有一个Google App Engine Java应用程序,它(通过一个小工具)嵌入到Google站点中。该应用程序是为谷歌应用程序客户构建的,因此设置为需要该客户域的谷歌身份验证,就像它嵌入的站点一样 一般来说,此应用程序仅在网站内使用。用户永远不必显式登录应用程序-它从父框架继承其登录会话(假设浏览器中未阻止第三方cookie) 根据以下文档,我们使用标准的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
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会检测到这一点,并按预期将用户重定向到登录屏幕。但是,在人们可能会注销父站点,然后在短时间内再次登录的情况下,有时人们会在应用程序中获得错误的权限级别
我们如何能立即发现并做出适当反应