重設密碼
Logto 提供完善的密碼重設功能,讓使用者在忘記密碼或想要更改密碼時,能安全地恢復帳號存取權。此功能支援多種驗證方式,包括電子郵件與簡訊,確保使用者能透過偏好的通訊管道重新取得存取權。
忘記密碼以恢復帳號
設定方式
啟用忘記密碼功能:
-
設定連接器 (Connectors):在 Console > Connectors > Email and SMS connectors 設定 Email 或 SMS 連接器
-
啟用驗證方式:
- 前往 Console > Sign-in experience > Sign-up and sign-in
- 啟用 密碼 (Password) 作為登入方式
- 為 忘記密碼 (Forgot password) 新增 電子郵件驗證碼 (Email verification code) 和 / 或 手機驗證碼 (Phone verification code)
-
儲存並測試:儲存變更並使用 即時預覽 (Live Preview) 進行測試
使用者體驗流程
啟用重設密碼功能後,登入表單下方會顯示「忘記密碼」連結按鈕。使用者可點擊「忘記密碼」連結啟動密碼重設流程。
- 造訪登入頁面:使用者造訪登入頁面。
- 點擊忘記密碼連結:使用者點擊「忘記密碼」連結。
- 輸入電子郵件 / 電話:點擊「忘記密碼」後,使用者將被導向新頁面,輸入已註冊的電子郵件地址或電話號碼。
- 發送驗證碼:Logto 會將驗證碼發送至使用者提供的電子郵件地址或電話號碼,並導向驗證碼輸入頁面。
- 輸入驗證碼:使用者輸入收到的驗證碼。Logto 會驗證該驗證碼及與電子郵件 / 電話號碼關聯的使用者身分。
- 輸入新密碼:驗證碼驗證成功後,系統會提示使用者輸入新密碼。
- 密碼重設成功:若新密碼符合密碼政策要求,密碼將成功更新。
- 導回登入頁面:使用者將被導回登入頁面,使用新密碼登入。

登入後變更密碼
已驗證身分的使用者可透過應用程式內的帳號設定體驗變更(或首次設定)密碼。請參閱 帳號設定 以瞭解如何透過 Account API 實作。
檢查使用者是否有密碼
使用者資料中有一個布林值欄位 hasPassword
,表示該使用者目前是否有儲存密碼憑證。
你可以透過以下方式取得 hasPassword
:
- Management API:例如
GET /api/users/:id
(包含於 user 物件中) - 自訂權杖宣告 (Custom token claims):將
hasPassword
注入 ID / 存取權杖 (ID/access tokens),讓前端 UI 可直接分支顯示,無需額外 API 呼叫
接著呼叫 Account API 端點來設定或更新密碼(請參閱帳號設定指南以取得請求細節)。對於從未設過密碼的使用者,你不需要(也不應要求)舊密碼欄位。
即使你的註冊方式要求電子郵件 / 電話 / 使用者名稱註冊時「設定密碼」,透過純社交登入 (social sign-in) 建立的使用者預設會跳過密碼設定,以降低摩擦。這些使用者的 hasPassword = false
,直到他們之後主動設定密碼。除非安全模型要求,否則請避免在社交註冊後強制立即設定密碼——延遲且情境感知的提示通常轉換率更佳。
自訂密碼政策
自訂密碼長度、字元要求與禁用詞,兼顧安全性與良好使用體驗。這些設定可於 Security > Password policy 區段調整。詳情請參閱 密碼政策 文件。
常見問題
如何在密碼重設成功後登出使用者?
訂閱 PostResetPassword
Webhook 事件,即可在使用者成功重設密碼時收到通知。你可以據此觸發 登出 動作,使使用者當前會話失效並導回登入頁面。
如何將密碼重設連結寄送到使用者電子郵件?
你可以建立自有的密碼重設端點,並利用 Logto SDK 發起登入請求,將 first_screen
設為 reset-password
,即可無縫導向密碼重設頁面。