【问题标题】:Integrating Auth0 authentication with existing user database将 Auth0 身份验证与现有用户数据库集成
【发布时间】:2017-02-24 13:44:54
【问题描述】:

我需要将 Auth0 集成到我们的项目 (Reactjs/Hapijs/MySQL) 中。我检查了文档,他们有很多示例,这很好,但是,我找不到任何与我如何使用现有用户数据库相关的内容。

在我的应用程序中,我有用户,这些用户可以拥有一个或多个项目。使用我们当前使用的授权,用户登录,我检查他拥有哪些项目并将其发送到 React 应用程序。

我缺少一份说明如何使用 Auth0 并且仍然能够在我的数据库中检查用户拥有的项目的文档。

我对它应该如何工作的想法(我可能错了):

  1. 用户将用户名和密码发送到我们的服务器
  2. 我们的服务器向 Auth0 发出请求(使用提供的凭据)
  3. Auth0 使用一些 token 回复我们的服务器
  4. 我们查看数据库中的用户表并尝试验证该用户的存在
  5. 如果匹配,我们只需查找(就像我们已经做的那样)用户项目。

这是它应该如何工作的吗?

【问题讨论】:

    标签: javascript mysql reactjs auth0


    【解决方案1】:

    在您希望将 Auth0 与已有用户数据库的应用程序集成的情况下,有几个选项可用。您可以:

    1. 继续use your existing store
    2. 逐步migrate your users from your custom store 到 Auth0 商店

    您没有明确提及它,但从您预期的流程来看,您似乎希望实现第一个选项。 您可以遵循特定文档来解释如何设置自定义数据库连接,请参阅Authenticate Users with Username and Password using a Custom Database。它提到了 MySQL,但也支持其他数据库服务器,并且有许多模板可以让您快速设置。

    完成后,最终流程如下:

    1. 使用 Auth0 身份验证库 (Lock) 或您的自定义 UI,您将要求用户提供他们的凭据
    2. Lo​​ck 或您的自定义 UI 将凭据提交到 Auth0 身份验证 API
    3. Auth0 身份验证 API 通过调用针对您的自定义数据库执行的脚本来验证凭据(这些脚本是您在配置数据库连接时提供的)
    4. 如果凭据有效,身份验证 API 将向调用应用程序返回一个令牌,该令牌将包含用户信息并证明用户就是他所说的那个人。

    您需要提供的脚本如下,但只有一个是强制性的:

    • 登录脚本(每次用户尝试登录时执行)(强制
    • 创建用户脚本
    • 验证电子邮件脚本
    • 修改密码脚本
    • 删除用户脚本

    仅当您想通过 Auth0 库提供相关功能时才需要可选脚本,如果只需要登录即可工作,则可以跳过它们。对于有效用户,登录脚本也是您返回用户个人资料信息的地方,例如,理论上您可以在用户个人资料中包含他们拥有的项目。

    【讨论】:

    • 非常好的答案!!谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 2016-07-03
    • 2022-09-23
    • 2016-10-30
    • 2022-01-04
    • 2021-02-10
    • 2019-04-02
    • 2014-09-28
    相关资源
    最近更新 更多