0

あるリクエストでパスワードのリセット トークンを生成しましたが、次のリクエストでパスワードをリセットしようとすると、無効なトークンと表示されます。

public async Task<string> GetResetToken(string userId)
{
    var token = await _userManager.GeneratePasswordResetTokenAsync(userId);
    return token;
}

public async Task<IdentityResult> ResetPassword(string userId, string token, string newPassword)
{
    var result = await _userManager.ResetPasswordAsync(userId, token, newPassword);
    return result;
}

これら 2 つの関数は、それぞれの API エンドポイントによって呼び出されます。プロセス全体の流れは次のとおりです。

  1. ウェブサイトにメールを入力
  2. API がトークンを生成し、リセット リンクが記載されたメールが送信されます
  3. リセット リンクをクリックすると、パスワードのリセット ページが表示されます
  4. ページは再度 API にヒットしてパスワードをリセットします

API が無効なトークンを返すだけなので、ステップ 4 以外はすべて機能します。生成されたトークンが手順 4 で受け取ったトークンとまったく同じであることを確認しました。

4

0 に答える 0