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

パスワードリセット

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 に設定したサインインリクエストを開始できます。これにより、ユーザーはシームレスにパスワードリセットページへリダイレクトされます。