重設密碼 (Reset password)
當你已設定有效的 Email 連接器 或 SMS 連接器 時,密碼找回功能會自動啟用。使用者可透過輸入註冊時的電子郵件地址或手機號碼來重設密碼。
忘記密碼以找回帳號
啟用重設密碼功能後,登入表單下方會顯示「忘記密碼」連結按鈕。使用者可點擊「忘記密碼」連結啟動密碼重設流程。
沒看到「忘記密碼」連結?請確認你已設定有效的 Email 或 SMS 連接器。
- 造訪登入頁面:使用者造訪登入頁面。
- 點擊忘記密碼連結:使用者點擊「忘記密碼」連結。
- 輸入電子郵件 / 手機號碼:點擊「忘記密碼」連結後,使用者會被導向新頁面,輸入註冊時的電子郵件地址或手機號碼。
- 發送驗證碼: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
,直到他們之後主動設定密碼。除非安全模型要求,否則請避免在社交註冊後強制立即設定密碼——延後、情境感知的提示通常轉換率更高。
自訂密碼政策 (Custom password policy)
可自訂密碼長度、字元要求與禁用詞,兼顧安全性與良好使用者體驗。這些設定可於 安全性 > 密碼政策 (Security > Password policy) 區段進行。詳情請參閱 密碼政策 文件。
常見問題 (FAQs)
密碼重設成功後如何登出使用者?
訂閱 PostResetPassword
Webhook 事件,即可在使用者成功重設密碼時收到通知。你可以據此觸發 登出 動作,使該使用者目前的工作階段失效並導回登入頁面。
如何將密碼重設連結發送到使用者電子郵件?
你可以建立自有的密碼重設端點,並利用 Logto SDK 發起登入請求,將 first_screen
設為 reset-password
。這將無縫導向使用者至密碼重設頁面。