我试图放入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)我是否使用该电子邮件作为用户名?
答案 0 :(得分:7)
是的,所有与身份验证相关的端点都在Authentication API的范围内实现。您应该使用此代替Management API来使用电子邮件和密码对用户进行身份验证。
此外,默认情况下,Auth0中的数据库连接使用电子邮件作为用户标识符,因此如果您的连接使用默认设置,则应使用该电子邮件作为用户名。除了电子邮件之外,还可以将它们配置为还需要传统的用户名,在这种情况下,您将不再在身份验证期间使用该电子邮件。
有许多可能的方法来集成Auth0身份验证,如果您的使用方案包含自定义用户界面,您可以在其中收集用户名/密码凭据,然后只想使用Auth0验证它们,则可以使用resource owner endpoint的身份验证API。