什么是最好的是与第三方网站分享会话cookie?

时间:2011-04-04 20:55:20

标签: javascript cookies session-cookies

我想要的是,当一个人已经通过我的网站进行身份验证时,我想将此信息传递给第三方网站。另一个网站应该使用JavaScript验证这一点并允许访问。做这种事的方法是什么?是通过传递会话cookie吗?

2 个答案:

答案 0 :(得分:0)

您无法跨域传递Cookie。实现SSO跨域的一种方法是让SiteA和SiteB共享公共秘密,允许加密/解密值。 AES是一个很好的算法。因此,如果用户在SiteA上进行了身份验证,那么您可以通过在请求中传递包含用户名的加密令牌来提供指向SiteB的链接。并且因为SiteB与SiteA共享相同的密钥,它将能够解密它并获取用户名。一旦它具有用户名,它就可以在第二个域上为该用户发出其aiuthentication cookie。

我担心纯粹使用javascript这样做可能会非常具有挑战性,因为您需要将用于加密令牌的秘密传递给javascript,这显然在安全性方面会是灾难性的。所以恕我直言,你需要一个服务器端支持来实现这一目标。

答案 1 :(得分:0)

正如Darin所说,您无法跨域共享Cookie。您要做的是第三方Cookie的设计目的。不幸的是,这些声誉很差,大多数浏览器默认会阻止第三方cookie。

您需要某种反向通道(服务器到服务器)通信,以便共享有关用户的详细信息,例如其授权状态。看看OAuth这类事情的真实实现,看看他们如何解决这个问题。