从这个问题开始:OpenID. How do you logout
行。所以OpenID没有单一注销 我可以看到用途,但有些情况让我担心:
单点登录非常适合移动设备和个人计算机 您登录一次,可能永远不需要再次注销(只需在新网站上进行身份验证)。
但如果我在公共电脑(机场,甚至是工作电脑),这是一个问题。
当我使用openID登录网站时,我正在登录两个不同的地方,这并不明显。我登录网站(例如使用gmail帐户进行stackoverflow),但同时我刚刚登录了gmail(OpenID提供商)。
当我退出stackoverflow时,我仍然被烧成gmail(OpenID Provider)。
当我使用gmail进行身份验证时,我不想登录gmail,我只想进行身份验证。
解决这个问题的方法是让注销流程同时将我从gmail中注销,但正如上一篇文章中所述,如果我退出stackoverflow,我不一定要注销gmail如果我是在家里。
所以问题确实是:
有没有办法在不登录的情况下对这些OpenID提供程序进行身份验证。
因为即使像堆栈溢出的网站,当您注销经过身份验证的OpenID提供程序时,它们也不会将您注销。如果您有Gmail帐户,我可以整天登录和退出,而不会影响是否已登录stackoverflow。
答案 0 :(得分:3)
如果协议不支持它(并且没有),那么除了在完成后删除所有cookie之外,你无法在这里做任何事情,这将清除将你登录到提供商的cookie。那些记录你服务的人。
除此之外,OpenID提供商不必为您提供持久性cookie,甚至不必为您提供登录OpenID帐户的会话cookie,它可以为您自己验证一次,然后向前发送身份验证令牌。如果您担心在使用OpenID时登录Gmail,请选择其他OpenID提供商。
但这是一个什么问题?
答案 1 :(得分:2)
人们显然没有在你的问题中看到这个问题,所以我在这里重复一遍只是为了清晰(并带有问号)
有没有办法在不登录的情况下对这些OpenID提供商进行身份验证?
我相信这个问题的答案是“不”(正如吹风机所阐述的那样)。
答案 2 :(得分:0)
简短的回答是肯定的,实际上,选择合理的OpenID提供商。
答案很长,这是关于您的OpenID提供商的问题,而不是OpenID本身。
仅限OpenID 处理身份验证。会话支持(以及相关概念,如登录或注销)不在OpenID规范中。
您的OpenID提供商可能会为您保留一个会话(可能使用浏览器cookie)。除非您指明(“登录stackoverflow.com时记住我”),否则任何合理的提供者都不会这样做。
OpenID使用者(例如StackOverflow)也可以为您保留会话。您无能为力,但对于任何身份验证方案(无论是第三方还是直接方式)都是如此。
因为OpenID的第三方方面设计得很好,所以很容易通过选择合理的提供商来避免登录,或者更好的方法是使用HTML页面作为您声明的身份,该委托给提供者如果您决定转换,可以更改。
答案 3 :(得分:-2)
OpenID没有指定提供者是否应该为自己创建登录会话,但几乎所有人都这样做。因此,没有选项可以在不在OP中留下会话的情况下对RP进行身份验证。
如果您真的想在不离开会话的情况下进行身份验证,则可以使用其他协议进行身份验证。几乎每个OP都提供了使用用户名/密码登录的专有协议。例如,Google有ClientAuth和AOL有directLogin。这就是所谓的密码反模式。它会产生一些隐私问题,因为您在自己的网站上收集了Google密码。无论如何我不推荐它。