Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用EasyXDM进行跨域身份验证_Javascript_Cross Domain_Session Cookies_User Tracking_Easyxdm - Fatal编程技术网

Javascript 使用EasyXDM进行跨域身份验证

Javascript 使用EasyXDM进行跨域身份验证,javascript,cross-domain,session-cookies,user-tracking,easyxdm,Javascript,Cross Domain,Session Cookies,User Tracking,Easyxdm,我正在尝试像谷歌一样登录,其中包括跨域身份验证。当登录到google.com时,您将自动登录到不同的域,如youtube.com。对我来说,它看起来像: 您可以在accounts.google.com上输入凭据 谷歌通过AJAX发送一个请求来检查它们 如果它们是正确的,那么它是1。设置一个cookie和2。是否向其他域(如youtube)发送请求,并发送一些标识符(SID或令牌?),并为这些域设置cookie 在所有其他域名都有了cookie之后,谷歌会将你重定向回你原来的位置 我做了很多研

我正在尝试像谷歌一样登录,其中包括跨域身份验证。当登录到google.com时,您将自动登录到不同的域,如youtube.com。对我来说,它看起来像:

  • 您可以在accounts.google.com上输入凭据
  • 谷歌通过AJAX发送一个请求来检查它们
  • 如果它们是正确的,那么它是1。设置一个cookie和2。是否向其他域(如youtube)发送请求,并发送一些标识符(SID或令牌?),并为这些域设置cookie
  • 在所有其他域名都有了cookie之后,谷歌会将你重定向回你原来的位置
我做了很多研究,似乎easyXDM()是一个很好的解决方案(你认为是吗?)。但我不知道如何进行跨域身份验证。当用户正确登录时,我是否应该向其他域发出请求,并在域上传递SID和创建cookie?还是不安全?或者我应该在登录后为用户创建一个令牌并将其存储在我的数据库中。然后将令牌发送到所有域以对其进行身份验证,然后删除令牌

我发现的其他一些东西是通过iframes中的iframes实现的解决方案。。Google analytics.js()看起来也很激动人心。。。但我看到它甚至集成在easyXDM中

如果你们有这方面的经验,我希望能有一些。我很想了解你的想法:)gerti你想要的是OAuth2(这是你所指的协议——谷歌登录的功能)

如果您正在寻找一个简单的解决方案,您可能希望尝试使用+。这是一个免费的API服务,您可以注册/使用

基本上,他们将为您托管一个域,当您希望用户创建帐户或登录时,您可以在其中重定向用户。然后,他们将处理所有的身份验证/授权(跨域),并使用JSON web令牌(JWT)将经过身份验证的用户发送给您

Stormpath有一系列用于各种编程语言的库,您可以从这里开始:


人们通常使用的其他解决方案需要相当多的时间/精力才能运行。实际上,我已经帮助构建了很多Stormpath库(在Node/Python中),因此我对它非常熟悉——在简单性方面,你真的无法打败它。

谢谢,我将介绍Stormpath。但是关于OAuth。。我还认为这将是一个很好的解决方案。但似乎更多的是为了第三方授权。第一次访问每个域时,您需要确认每个域的授权。我错了吗?这是正确的——如果你想要真正的“单点登录”,你需要实现SAML——但这通常比大多数人需要的要复杂得多。通过使用token auth=)实现平滑的OAuth2流,您可以“愚弄”用户,让他们认为他们拥有SSO