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

パスワードのリセット

有効な Email コネクター または SMS コネクター を設定すると、パスワードリカバリー機能が自動的に有効になります。ユーザーは、登録済みのメールアドレスまたは電話番号を入力することでパスワードをリセットできます。

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

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

注記:

「パスワードをお忘れですか」リンクが表示されない場合は、有効な Email または SMS コネクターが設定されていることを確認してください。

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