1

好的,这很奇怪。我今天在我的 rails 应用程序中安装了 authlogic-oid。一切都很好,但有一点小麻烦。

这就是我所做的:

我首先使用我的 google openid 注册。成功登录、重定向和我的电子邮件,以及我正确的 openid 都存储在我的数据库中。我很高兴一切正常!

现在,当我注销时,我的 Rails 应用程序像往常一样破坏了会话并将我重定向回我可以再次登录的根 URL。现在,如果我尝试登录,它仍然会记住我上次的登录 ID。不是一个大问题,因为我总是可以“以其他用户身份登录”,但我想知道是否有办法不仅从我的应用程序注销,而且还从谷歌注销。

我注意到堆栈溢出的 openid 身份验证系统也是如此。

你可能会问,我为什么这么在意这个。但是,如果您的网络应用程序最终用户(碰巧在网吧中)认为他已经从您的应用程序中注销,因此从他的谷歌帐户中退出,后来才意识到他的谷歌帐户被某些人入侵,这不是一个坏主意吗?不值得的失败者碰巧注意到他之前的那个人没有从谷歌注销并说..更改了他的密码!

我应该偏执吗?这不是实施 openid 规范时的重大安全漏洞吗?也许今天有人可以给我一个解决这个问题的方法,这个问题已经为我解决了。但是其他在他们的应用程序中实现了 openid 而没有实现变通方法的人呢?

4

2 回答 2

3

如果这对您来说是个大问题,请不要使用 OpenID,或者在成功注销后显示 DHTML 弹出窗口,提醒用户他们的会话在其 OpenID 提供程序上仍然有效。

至于谷歌的OpenID,你大概能做的就是通过以下网址重定向用户

http://www.google.com/accounts/ClearSID?continue=http%3A%2F%2Fwww.google.com%2Faccounts%2FLogout%3Fcontinue%3Dhttp%3A%2F%2Fwww.google.com%2F

于 2010-04-18T15:46:20.917 回答
2

Afaik,您无法在另一个系统中将用户从他们的帐户中注销。你的应用应该只对它自己的业务负责。作为用户,如果使用 openid 的网站可以让我退出我的谷歌帐户,我会感到非常惊讶。

是的,有一种情况,用户可以假设他们已从 google 注销,因为他们在您的网站上注销,但这将(并且应该)是他们自己的错。

于 2010-04-18T15:06:34.607 回答