很好奇Stack Overflow是如何跨域使用单点登录的。我相信这是Apache最有可能发生的事情,因为cookie跨域失败。如果你不知道我在说什么,这里有一个很好的例子。
- 点击你的用户名一直在页面的顶部 滚动到页面底部,点击另一个"帐户"除了Stack Overflow(例如SuperUser)
如果您查看,您仍然以用户身份登录。特别是你。
这是一件有趣的事情,我们可以投票排除这个事实堆栈传递cookie,因为它们跨域无效,这就需要问题是他们到底做了什么让你在跨域登录?是图像技巧(我听说过用gif传递信息)吗?它是否与OpenID或其他东西完全有关。我知道有多种SSO解决方案,如JOSSO, OpenSSO,CAS, shiboleth和许多其他的。我很欣赏这种天衣无缝的感觉Stack Overflow有,只是好奇是否有人知道他们的实现。
它们不共享凭证信息。你必须分别登录每个网站。如果你退出超级用户,你仍然会登录到stackoverflow。
检查您的cookie,每个域都有一个名为usr
的cookie
也许在2011年的时候stackexchange还没有这个功能,但是现在它已经存在了。如果你登录到stackoverflow.com
,然后去serverfault.com
,点击"log in
",你将自动登录(假设你是stackoverflow.com
和serverfault.com
的成员)。
有一个特殊的域stackauth.com
跟踪stackexchange SSO与Ajax请求,如:https://stackauth.com/auth/global/read?request=8mxxNKQLxiYWd01AQO7D24eF9YSzd62Q5MyLlZhLmdzh0qGz6sOVlJAyC3oj%2B5b4PeVEH8J4x51g0oyiKi2FMQ%3D%3D& nonce = YZRsUwAAAAAMvr % 2 f34zkmoa % 3 d % 3 d