跳至主要內容

重設密碼

Logto 提供完善的密碼重設功能,讓使用者在忘記密碼或想要更改密碼時,能安全地恢復帳號存取權。此功能支援多種驗證方式,包括電子郵件與簡訊,確保使用者能透過偏好的通訊管道重新取得存取權。

忘記密碼以恢復帳號

設定方式

啟用忘記密碼功能:

  1. 設定連接器 (Connectors):在 Console > Connectors > Email and SMS connectors 設定 EmailSMS 連接器

  2. 收集使用者聯絡資訊:確保使用者在註冊或透過帳號設定時已註冊電子郵件 / 電話

  3. 啟用驗證方式

  4. 儲存並測試:儲存變更並使用 即時預覽 (Live Preview) 進行測試

使用者體驗流程

啟用重設密碼功能後,登入表單下方會顯示「忘記密碼」連結按鈕。使用者可點擊「忘記密碼」連結啟動密碼重設流程。

  1. 造訪登入頁面:使用者造訪登入頁面。
  2. 點擊忘記密碼連結:使用者點擊「忘記密碼」連結。
  3. 輸入電子郵件 / 電話:點擊「忘記密碼」後,使用者將被導向新頁面,輸入已註冊的電子郵件地址或電話號碼。
  4. 發送驗證碼:Logto 會將驗證碼發送至使用者提供的電子郵件地址或電話號碼,並導向驗證碼輸入頁面。
  5. 輸入驗證碼:使用者輸入收到的驗證碼。Logto 會驗證該驗證碼及與電子郵件 / 電話號碼關聯的使用者身分。
  6. 輸入新密碼:驗證碼驗證成功後,系統會提示使用者輸入新密碼。
  7. 密碼重設成功:若新密碼符合密碼政策要求,密碼將成功更新。
  8. 導回登入頁面:使用者將被導回登入頁面,使用新密碼登入。
重設密碼流程

登入後變更密碼

已驗證身分的使用者可透過應用程式內的帳號設定體驗變更(或首次設定)密碼。請參閱 帳號設定 以瞭解如何透過 Account API 實作。

檢查使用者是否有密碼

使用者資料中有一個布林值欄位 hasPassword,表示該使用者目前是否有儲存密碼憑證。

你可以透過以下方式取得 hasPassword

接著呼叫 Account API 端點來設定或更新密碼(請參閱帳號設定指南以取得請求細節)。對於從未設過密碼的使用者,你不需要(也不應要求)舊密碼欄位。

提示:

即使你的註冊方式要求電子郵件 / 電話 / 使用者名稱註冊時「設定密碼」,透過純社交登入 (social sign-in) 建立的使用者預設會跳過密碼設定,以降低摩擦。這些使用者的 hasPassword = false,直到他們之後主動設定密碼。除非安全模型要求,否則請避免在社交註冊後強制立即設定密碼——延遲且情境感知的提示通常轉換率更佳。

自訂密碼政策

自訂密碼長度、字元要求與禁用詞,兼顧安全性與良好使用體驗。這些設定可於 Security > Password policy 區段調整。詳情請參閱 密碼政策 文件。

常見問題

如何在密碼重設成功後登出使用者?

訂閱 PostResetPassword Webhook 事件,即可在使用者成功重設密碼時收到通知。你可以據此觸發 登出 動作,使使用者當前會話失效並導回登入頁面。

如何在自訂 UI 上實作密碼重設流程?

你可以透過 Logto 的 Management APIAccount API 實作自訂密碼重設流程。詳情請參閱 帳號設定

你可以建立自有的密碼重設端點,並利用 Logto SDK 發起登入請求,將 first_screen 設為 reset-password,即可無縫導向密碼重設頁面。