Есть ли поддержка токена обновления в ядре ASP.NET? - PullRequest
0 голосов
/ 06 мая 2019

Мне нужен токен обновления в ASP.NET Core приложении. В настоящее время я реализовал токен обновления / доступа. В моей реализации токен обновления и дата его истечения сохраняются вместе с сущностью User в базе данных. Кроме того, токен обновления можно использовать для создания новых токенов доступа без использования имени пользователя и пароля. Это прекрасно работает, но мне интересно, есть ли в ASP.NET Core самих или сторонних пакетах, таких как Open Id Connect, реализация токена обновления или нет. Заявка основана на JWT и ASP.NET Identity.

При поиске в Интернете обнаружил , что в Microsoft.AspNetCore.Authentication существует метод с именем HttpContext.GetTokenAsync(). Дополнительно этот вопрос и этот вопрос о СО обсуждают аналогичные идеи; но я все еще не уверен, какой компонент или реализацию они используют. И где хранится токен обновления. В базе данных? другое место?

1 Ответ

1 голос
/ 06 мая 2019

GetTokenAsync - это расширение, которое находится в пакете Microsoft.AspNetCore.Authentication.Abstractions.

Вот код, который можно использовать для обновления токена в клиенте.

Если вы ищете реализацию OpenId Connect, взгляните на IdentityServer4 .Для других решений: Опции аутентификации OSS сообщества для ASP.NET Core

Существуют различные стратегии для маркеров обновления.Вы можете использовать автономный токен, который не нужно хранить на сервере.Клиент может использовать этот токен до истечения срока его действия.Этот токен не может быть отозван.

Альтернативой является использование кода «одноразового использования», который хранится в базе данных.После использования код заменяется новым кодом.Это позволяет серверу отозвать токен обновления (просто удалив его из магазина).

Я не уверен, охватывает ли это все ваши вопросы, поэтому дайте мне знать, если что-то отсутствует или неясно.

...