【问题标题】:Auth0 custom reset passwordAuth0自定义重置密码
【发布时间】:2016-12-22 14:06:09
【问题描述】:

我已经实现了自定义注册、登录和注销,我正在尝试重置密码,但我发现的只是如何向用户发送重置密码电子邮件,而在如何重置密码之后什么也没有。

PS : 我不想使用 auth0-lock 或 auth0 小部件

【问题讨论】:

    标签: angularjs auth0


    【解决方案1】:

    要重置忘记的密码,您可以使用 Auth0 库中提供的“changePassword”方法,只传递电子邮件 ID。

    以下 sn-p 是我们如何使用 auth0-angular 重置密码(自定义)。

    function reset(username){
        angularAuth0.changePassword({
            connection: 'Username-Password-Authentication',
            responseType: 'token',
            email: username,
        }, callback);
    }
    

    【讨论】:

      【解决方案2】:

      如果您想通过代码更新用户密码,您可以使用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
      

      请记住,如果最终用户会触发此操作,您还应该实施一种机制来验证用户的身份,例如让用户先登录(如果他或她记得旧密码)或发送电子邮件带有启动流程的链接。

      【讨论】:

      • 这对用户登录很好;但是如何为忘记密码的用户重置密码
      • 两个不同的东西。一方面,您有“如何从应用程序更改用户密码”。您可以使用提到的 API 来做到这一点。我虽然你的问题提到了这一点。另一方面,您有“如何确保用户重置密码是合法的”。 Auth0 使用“票证”进行管理,该票证是通过电子邮件发送的 URL,允许用户在访问该 URL 时更改密码。由于只有有权访问电子邮件的人才能知道该 URL,因此您可以确定该用户确实拥有该电子邮件地址。我不确定您要更改哪一部分。
      猜你喜欢
      • 2022-01-01
      • 2017-02-14
      • 2017-08-02
      • 2019-01-16
      • 2020-06-23
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      相关资源
      最近更新 更多