Javascript 最好的方法是与第三方网站共享会话cookie?

Javascript 最好的方法是与第三方网站共享会话cookie?,javascript,cookies,session-cookies,Javascript,Cookies,Session Cookies,我想做的是,当一个人已经通过我的网站认证,我想把这个信息传递给第三方网站。另一个网站应该使用JavaScript验证这一点,并允许访问。做这种事的方法是什么?是通过传递会话cookies吗?您不能跨域传递cookies。实现跨域SSO的一种方法是让SiteA和SiteB共享公共密钥,从而允许对值进行加密/解密。这是一个很好的算法。因此,如果用户在SiteA上经过身份验证,则可以通过在请求中传递包含用户名的加密令牌来提供指向SiteB的链接。而且由于SiteB与SiteA共享相同的密钥,因此它将能

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

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


我担心纯粹用javascript来实现这一点可能会非常具有挑战性,因为您需要将用于加密令牌的秘密传递给javascript,这显然会带来灾难性的安全性。因此,我认为您需要服务器端支持来实现这一点。

正如Darin所说,您不能跨域共享cookie。你想做的就是第三方cookie的设计目的。不幸的是,这些浏览器名声太差,以至于大多数浏览器默认情况下都会阻止第三方cookie

您需要某种后台通道(服务器到服务器)通信,以便共享有关用户的详细信息,例如他们的授权状态。看看这类东西的实际实现,比如OAuth,看看它们是如何解决这个问题的