如何使用 Auth0 api 使用电子邮件和密码 check/authenticate

How to check/authenticate with email and password using the Auth0 api

我正在尝试放入 Auth0 并替换服务器上现有 REST api 中的登录和注册方法。当前系统使用邮箱和密码。

为此,我使用 Auth0 作为后备存储来实现登录和注册端点。我通过 Node.js 服务器使用管理 api 成功创建了一个具有电子邮件和密码的用户。

var request = require("request");

var options = { method: 'POST',
  url: 'https://test.auth0.com/api/v2/users',
  headers: 
   { 
     'content-type': 'application/json',
     authorization: 'Bearer SomeToken' },
  body: 
   { connection: 'Username-Password-Authentication',
     email: 'test@yahoo.com',
     password: 'test',
     user_metadata: { enable_promotions: true },
     email_verified: false,
     app_metadata: {} },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

我一直在努力弄清楚现在如何对同一用户进行身份验证。我在管理 api 上找不到身份验证方法,所以我使用身份验证 api 尝试了它,但它说需要用户名 - 在我的例子中,我通过电子邮件而不是用户名创建了一个用户。

a) 我是否必须使用身份验证 API 而不是管理 api 来使用密码和电子邮件进行身份验证?

b) 我是否使用电子邮件作为用户名?

是的,所有与身份验证相关的端点都在 Authentication API. You should use this instead of the Management API 的范围内实现,以使用电子邮件和密码对用户进行身份验证。

此外,默认情况下,Auth0 中的数据库连接使用电子邮件作为用户标识符,因此如果您的连接使用默认设置,您应该使用电子邮件作为用户名。可以将它们配置为除了电子邮件之外还需要传统的用户名,在这些情况下,您在身份验证期间将不再使用电子邮件。

集成 Auth0 身份验证的方法有很多种,如果您的使用场景包括自定义用户界面,您可以在其中收集 username/password 凭据,然后只想使用 Auth0 验证它们,您可以使用 [=身份验证 API.

的 11=]