2016-08-16 51 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 

請記住,如果最終用戶會觸發這個你也應該實現一種機制來驗證用戶的身份,如具有用戶首先登錄(如果他或她記住舊密碼)或通過發送帶有鏈接的電子郵件來啓動該過程。

+0

這項工作正常用於用戶登錄;但是如何爲忘記密碼的用戶重置密碼 – Ayoub

+0

兩件不同的事情。一方面你有「如何從應用程序更改用戶密碼」。你可以用上面提到的API來做到這一點。我雖然你的問題提到這一點。 另一方面,您有「如何確保用戶重置密碼是合法的」。 Auth0通過一個「ticket」來管理它,這是一個通過電子郵件發送的URL,它允許用戶在跟蹤該URL時更改密碼。由於只有那些有權訪問該電子郵件的人才能知道該URL,因此可以確定該用戶確實擁有該電子郵件地址。我不確定你想要改變的部分。 –

0

要重置忘記的密碼,您可以通過僅傳遞電子郵件ID來使用Auth0庫中的'changePassword'方法。

以下片段是我們如何使用auth0-angular重置密碼(自定義)。

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