【发布时间】:2016-12-22 14:06:09
【问题描述】:
我已经实现了自定义注册、登录和注销,我正在尝试重置密码,但我发现的只是如何向用户发送重置密码电子邮件,而在如何重置密码之后什么也没有。
PS : 我不想使用 auth0-lock 或 auth0 小部件
【问题讨论】:
我已经实现了自定义注册、登录和注销,我正在尝试重置密码,但我发现的只是如何向用户发送重置密码电子邮件,而在如何重置密码之后什么也没有。
PS : 我不想使用 auth0-lock 或 auth0 小部件
【问题讨论】:
要重置忘记的密码,您可以使用 Auth0 库中提供的“changePassword”方法,只传递电子邮件 ID。
以下 sn-p 是我们如何使用 auth0-angular 重置密码(自定义)。
function reset(username){
angularAuth0.changePassword({
connection: 'Username-Password-Authentication',
responseType: 'token',
email: username,
}, callback);
}
【讨论】:
如果您想通过代码更新用户密码,您可以使用Management API v2。
您需要使用 PATCH 动词来“更新”用户:
https://{account-domain}/api/v2/users/{user-id}
还有这样的身体:
{
"password" : "new_password",
"connection": "the_connection_to_use"
}
为此,您需要一个不记名令牌,可以从 Management API v2 文档页面生成。
等效的 CURL 命令(为提高可读性而添加了新行):
curl -H "Authorization: Bearer {your access token}"
-X PATCH
-H "Content-Type: application/json"
-d '{"password":"new_password","connection":"the_connection_to_use"}'
https://{account domain}/api/v2/users/user-id
请记住,如果最终用户会触发此操作,您还应该实施一种机制来验证用户的身份,例如让用户先登录(如果他或她记得旧密码)或发送电子邮件带有启动流程的链接。
【讨论】: