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

时间:2016-10-19 19:25:53

标签: 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);
});

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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

有许多可能的方法来集成Auth0身份验证,如果您的使用方案包含自定义用户界面,您可以在其中收集用户名/密码凭据,然后只想使用Auth0验证它们,则可以使用resource owner endpoint的身份验证API。