Токен пароля сброса личности ASP.NET Core 5 случайно недействителенC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Токен пароля сброса личности ASP.NET Core 5 случайно недействителен

Сообщение Anonymous »

Использование IdentityServer4 + ASP.NET Core Identity с .NET 5.
Однако наша конечная точка сброса пароля выдает ошибки, если я повторно отправлю запрос несколько раз (тот же самый запрос), он снова работает.
Вот краткое описание нашего процесса: после проверки пользователя я генерирую токен сброса пароля следующим образом:

Код: Выделить всё

var token = await _userManager.GeneratePasswordResetTokenAsync(user);
Затем я передаю этот токен во внешний интерфейс, который отправляет этот токен в конечную точку сброса пароля, где этот токен проверяется:

Код: Выделить всё

// removed rest of the code for brevity
if (user == null)
{
throw new CustomException(UserNotFoundException);
}

var isValid = await userManager.VerifyUserTokenAsync(user, userManager.Options.Tokens.PasswordResetTokenProvider, "ResetPassword", token);

if (!isValid)
{
throw new CustomException(InvalidTokenException);
}

return isValid;
Метод VerifyUserTokenAsync большую часть времени возвращает false, но после нескольких повторов (от 2 до 10 попыток) он в конечном итоге работает.
Эта проблема возникает только в нашей производственной среде; в наших средах тестирования такой проблемы нет. Кажется, проблема связана только с PasswordResetTokenProvider, поскольку наш пользовательский поставщик OTP работает корректно и без сбоев.
Шаги, которые я предпринял на данный момент:
< ul>
[*]Проверено, что токен, сгенерированный функцией GeneratePasswordResetTokenAsync, и токен, отправленный в запросе, идентичны.
[*]Убедился, что токен отправляется в тексте запроса во избежание несоответствий кодирования/декодирования.
[*]Подтверждено, что SecurityStamp не имеет значения NULL во время процесса.
[*]Проверено, что код не был изменен сделано до возникновения этой проблемы (она начала происходить недавно без каких-либо видимых изменений).

Есть идеи, что может быть причиной этого? в этот момент я чувствую себя потерянным и не знаю, где искать. У меня есть одно подозрение: может быть запущено несколько экземпляров нашего приложения для идентификации, и это может быть причиной проблемы (хотя я не знаю, вызовет ли это вообще проблему). При необходимости я буду рад предоставить дополнительный код.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... ly-invalid
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Токен носителя Jwt недействителен в веб-API ASP.NET Core.
    Anonymous » » в форуме C#
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous
  • Веб-API ASP.NET Core 8: токен JWT всегда недействителен
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Веб-API ASP.NET Core 8: токен JWT всегда недействителен
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Веб-API ASP.NET Core 8: токен JWT всегда недействителен
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Веб-API ASP.NET Core 8: токен JWT всегда недействителен
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»