【问题标题】:Cross Domain Authentication with EasyXDM使用 EasyXDM 进行跨域身份验证
【发布时间】:2015-08-21 08:24:24
【问题描述】:

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

  • 您在 accounts.google.com 上输入凭据
  • Google 通过 AJAX 发送请求以检查它们
  • 如果它们是正确的,它 1. 设置一个 cookie 和 2. 向 youtube 等其他域发出请求并发送一些标识符(SID 或令牌?)并为这些域设置 cookie
  • 在所有其他域也有 cookie 之后,Google 会将您重定向回您来自的地方

我研究了很多,似乎 easyXDM (http://easyxdm.net/wp/) 是一个很好的解决方案(你认为是吗?)。但我不确定如何进行跨域身份验证。当用户正确登录时,我是否应该只向其他域发出请求并传递 SID 并在域上创建 cookie?还是不安全?或者我应该在登录后为用户创建一个令牌并将其存储在我的数据库中。然后将令牌发送到所有域以对其进行身份验证,然后删除令牌?

我发现的其他一些东西是通过 iframe 中的 iframe 的解决方案。Google 的 analytics.js (https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain) 看起来令人兴奋...但我看到它甚至集成在 easyXDM 中。

如果你们对这些东西有经验,我希望有些。我很想知道你的想法:) gerti

【问题讨论】:

    标签: javascript cross-domain session-cookies user-tracking easyxdm


    【解决方案1】:

    您想要的是 OAuth2(这是您所指的协议 -- Google 登录的作用)。

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

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

    Stormpath 拥有大量适用于各种编程语言的库,您可以从这里开始:https://docs.stormpath.com/home/

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

    【讨论】:

    • 谢谢,我去看看 Stormpath。但是关于 OAuth .. 我也认为这将是一个很好的解决方案。但似乎更多的是第三方授权。当您第一次访问它时,您需要确认每个域的授权。我错了吗?
    • 这是正确的——如果你想要真正的“单点登录”,你需要实现 SAML——但这通常比大多数人需要的复杂得多。您可以通过使用令牌 auth =) 实现流畅的 OAuth2 流程来“愚弄”用户认为他们拥有 SSO =)
    猜你喜欢
    • 2016-01-05
    • 2019-02-25
    • 2014-10-25
    • 2021-01-13
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    相关资源
    最近更新 更多