2016-08-16 58 views
0

私はカスタムサインアップ、サインインとサインアウトを実装しましたが、パスワードをリセットしようとしていますが、私はパスワードをリセットする方法を教えています。Auth0カスタムリセットパスワード

PS:私はauth0ロックまたはauth0ウィジェットを使用したくない

答えて

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 

エンドユーザーがこれをトリガーする場合にも、そのようなものとして、ユーザーのIDを検証するメカニズムを実装する必要があることに注意してくださいユーザーが最初にログインした場合(古いパスワードを覚えている場合)、またはプロセスを開始するためのリンクが付いた電子メールを送信してください。

+0

このユーザーはログインしても問題ありません。パスワードを忘れたユーザーのパスワードをリセットする方法 – Ayoub

+0

2つの異なることがあります。一方では、 "アプリケーションからユーザーパスワードを変更する方法"があります。あなたは、上記のAPIでそれを行うことができます。あなたの質問はこれに言及しましたが。 一方、「パスワードをリセットするユーザーが正当なものであることを確認する方法」があります。 Auth0は、このURLを追跡する際にユーザーがパスワードを変更できるようにする電子メールで送信される「チケット」でこれを管理します。電子メールにアクセスできるユーザーだけがそのURLを知っているので、ユーザーが実際に電子メールアドレスを所有していることを確認できます。どの部分を変更したいのか分かりません。 –

0

忘れたパスワードをリセットするには、Auth0ライブラリで利用可能な 'changePassword'メソッドを電子メールIDだけを渡して使用できます。

以下のスニペットは、auth0-angularを使用してパスワード(カスタム)をリセットする方法です。

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