如何使用Auth0 api检查/验证电子邮件和密码

Mon*_*key 2 auth0

我试图放入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);
});
Run Code Online (Sandbox Code Playgroud)

我一直试图弄清楚如何验证同一个用户.我在管理API上找不到身份验证方法,所以我尝试使用身份验证api,但它说用户名是必需的 - 在我的情况下,我通过电子邮件而不是用户名创建了用户.

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

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

Joã*_*elo 7

是的,所有与身份验证相关的端点都在Authentication API的范围内实现.您应该使用此代替Management API来使用电子邮件和密码对用户进行身份验证.

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

有许多可能的方法来集成Auth0身份验证,如果您的使用方案包括自定义用户界面,您可以在其中收集用户名/密码凭据,然后只想使用Auth0验证它们,则可以使用Authentication API 的资源所有者端点.