我正在尝试像Google一样进行登录,其中包括跨域身份验证。当登录到google.com时,您将自动登录像youtube.com这样的不同域名。对我来说,它看起来像:使用EasyXDM进行跨域身份验证
- 你在accounts.google.com输入凭据
- 谷歌通过AJAX发送一个请求,以检查他们
- ,如果他们是正确的,它1.设置一个cookie和2。向其他域(如YouTube)发送请求并发送一些标识符(SID或令牌?),并为这些域设置Cookie
- 所有其他域也具有cookie后Google会将您重定向回来的位置
我在研究很多,看起来easyXDM(http://easyxdm.net/wp/)是一个很好的解决方案(你认为它是什么?)。但我不确定如何进行跨域身份验证。当用户正确登录时,我是否应该向其他域请求并传递SID并在域上创建cookie?或者它不安全?或者,我应该在登录后为用户创建令牌并将其存储在我的数据库中。然后将令牌发送到所有域以验证他,然后删除令牌?
我发现的其他一些东西是通过iframe在iframes中的解决方案..也谷歌analytics.js(https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain)看起来令人兴奋......但我看到它甚至在easyXDM中被集成。
我希望有些人,如果你们有这些东西的经验。我很想知道你在想什么:) gerti
谢谢,我会看看Stormpath。但关于OAuth ..我也认为这将是一个很好的解决方案。但它似乎更像是第三方授权。当您第一次访问时,您需要确认每个域的授权。我错了吗? – gerti
这是正确的 - 如果你真的想要'单点登录',你需要实现SAML - 但这通常比大多数人需要的方式复杂。通过使用token auth =)实现流畅的OAuth2流程,您可以'欺骗'用户认为他们拥有SSO – rdegges