将Auth0身份验证与现有用户数据库集成

Ved*_*ic. 5 javascript mysql reactjs auth0

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

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

我错过了一个文档,它解释了我如何使用Auth0并仍然可以检查我的数据库用户拥有什么项目.

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

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

这是它应该如何工作?

Joã*_*elo 4

对于要将 Auth0 与已有用户数据库的应用程序集成的场景,有一些选项可用。您可以:

  1. 继续使用您现有的商店
  2. 逐步将您的用户从自定义商店迁移到 Auth0 商店

您没有明确提及它,但从您的预期流程来看,您似乎希望实现第一个选项。您可以遵循特定文档来解释如何设置自定义数据库连接,请参阅使用自定义数据库通过用户名和密码对用户进行身份验证。它提到了 MySQL,但也支持其他数据库服务器,并且有许多模板可以让您快速设置。

完成此操作后,最终流程将如下所示:

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

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

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

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