如何在没有sso服务器的情况下实现基于cookie的单点登录?我想在浏览器上只使用cookie共享跨多个应用程序登录的用户.
在我看来它的工作方式如下:
用户登录应用程序
应用程序验证凭据,然后在存储用户名的浏览器上设置cookie(可以用私钥编码)
如果用户打开另一个应用程序,它会搜索cookie并读取值上的用户名(使用键解码字符串)
在该解决方案中,用户可以看到(另一个用户的)浏览器cookie并且获取用户名的字符串.然后他可以将它添加到自己的cookie上(不好!).
有一些安全的方法来做到这一点?使用基于时间戳的控件或类似的东西?
提前致谢.
再见
PS我知道我的英语不是很好......对不起!
这是不可能的.Cookie对每个域都是唯一的,一个域无法读取其他域的Cookie.
有一个简单的解决方案,不使用sso服务器,但不使用1个常见的cookie,因为我们知道cookie不在域之间共享.
当用户在site-a.com上进行身份验证时,您在site-a.com域上设置了cookie.然后在site-b.com上,链接来自site-a.com的动态javascript,由有权访问创建的cookie的服务器端脚本(php等)生成,然后在site-b.com上复制相同的cookie在客户端使用js.现在两个站点都具有相同的cookie,而无需要求用户重新登录.
您可以使用site-a和site-b都知道如何解码的方法对cookie值进行加密/编码,以便site-b能够验证他的cookie副本.使用一个共同的秘密,没有它就不可能编码或解码.
您看到在site-b.com的第一页加载时,cookie不存在,因此如果您认为有必要,您可能希望在设置cookie后重新加载页面.