メインコンテンツまでスキップ

パスワードリセット

Logto は、ユーザーがパスワードを忘れた場合や変更したい場合に、安全にアカウントへのアクセスを回復できる包括的なパスワードリセット機能を提供しています。この機能はメールや SMS など複数の認証方法をサポートしており、ユーザーは希望する通信チャネルでアクセスを回復できます。

アカウント回復のためのパスワードを忘れた場合

設定方法

パスワードを忘れた場合の機能を有効にするには:

  1. コネクターの設定メール または SMS コネクターを コンソール > コネクター > メールおよび SMS コネクター で設定します。

  2. ユーザー連絡先情報の収集サインアップ 時や アカウント設定 で、ユーザーがメールアドレスまたは電話番号を登録していることを確認します。

  3. 認証方法の有効化

  4. 保存とテスト:変更を保存し、ライブプレビュー でテストします。

ユーザー体験フロー

パスワードリセット機能を有効にすると、サインインフォームの下に「パスワードを忘れた場合」リンクボタンが表示されます。ユーザーはこのリンクをクリックしてパスワードリセットプロセスを開始できます。

  1. サインインページにアクセス:ユーザーがサインインページにアクセスします。
  2. 「パスワードを忘れた場合」リンクをクリック:ユーザーが「パスワードを忘れた場合」リンクをクリックします。
  3. メール / 電話番号の入力:「パスワードを忘れた場合」リンクをクリックすると、登録済みのメールアドレスまたは電話番号を入力できる新しいページにリダイレクトされます。
  4. 認証コードの送信:Logto は入力されたメールアドレスまたは電話番号に認証コードを送信し、コード認証ページにリダイレクトします。
  5. 認証コードの入力:ユーザーはメールまたは電話で受け取った認証コードを入力します。Logto はコードと、そのメールアドレスまたは電話番号に紐づくユーザーの本人確認を行います。
  6. 新しいパスワードの入力:認証コードが正常に認証されると、新しいパスワードの入力を求められます。
  7. パスワードリセット成功:入力されたパスワードがパスワードポリシー要件を満たしていれば、パスワードが正常に更新されます。
  8. サインインページへリダイレクト:ユーザーはサインインページにリダイレクトされ、新しいパスワードでサインインできます。
パスワードリセットフロー

サインイン後のパスワード更新

認証済みユーザーは、アプリ内のアカウント設定画面からパスワードを変更(または初回設定)できます。Account API を使った構築方法は アカウント設定 を参照してください。

ユーザーがパスワードを持っているか確認する

ユーザーデータには、ユーザーが現在パスワード認証情報を保持しているかどうかを示すブール値フィールド hasPassword があります。

hasPassword を取得する方法:

  • Management API:例 GET /api/users/:id(ユーザーオブジェクトに含まれます)
  • カスタムトークンクレームhasPassword を ID / アクセストークンに注入(追加の API コールなしでフロントエンドの UI 分岐が可能)

その後、Account API エンドポイントを呼び出してパスワードを設定または更新します(リクエスト詳細はアカウント設定ガイド参照)。これまでパスワードを持っていなかったユーザーの場合、古いパスワードフィールドは不要(かつ要求すべきではありません)。

ヒント:

メール / 電話 / ユーザー名登録で「パスワード設定」が必須でも、ソーシャルサインインのみで作成されたユーザーは、初期状態でパスワード作成をスキップします(利便性向上のため)。これらのユーザーは hasPassword = false となり、後から明示的に設定するまでパスワードを持ちません。セキュリティ要件がない限り、ソーシャルサインアップ直後に即座のパスワード設定を強制しないでください。文脈に応じた遅延プロンプトの方がコンバージョン率が高い傾向にあります。

カスタムパスワードポリシー

パスワードの長さ、文字要件、単語制限などをカスタマイズして、ビジネスのセキュリティニーズとユーザー体験のバランスを取ることができます。これらの設定は セキュリティ > パスワードポリシー セクションで設定できます。詳細は パスワードポリシー ドキュメントを参照してください。

よくある質問

パスワードリセット成功後にユーザーをサインアウトさせるには?

ユーザーがパスワードを正常にリセットした際に通知を受け取るには、PostResetPassword Webhook イベント を購読してください。その後、サインアウト アクションをトリガーして、ユーザーの現在のセッションを無効化し、サインインページへリダイレクトできます。

独自 UI でパスワードリセットフローを実装するには?

Logto の Management API および Account API を利用して独自のパスワードリセットフローを実装できます。詳細は アカウント設定 をご覧ください。

セルフホストのパスワードリセットエンドポイントを作成し、Logto SDK を利用して first_screenreset-password に設定したサインインリクエストを開始できます。これにより、ユーザーをパスワードリセットページへシームレスにリダイレクトできます。