Активация, проверка, обновление и отмена JWT в ASP.NET Core, нужна ли реализация с Redis и MongoDb
Сейчас поясню о чем идет речь, а ниже жирным выделю сам вопрос. Пояснение Достаточно мало информации в гугле по JWT и ASP.NET Core, и все они достаточно похожи. Генерируются JSON Web Tokens через JwtSecurityTokenHandler, и дальше для реализации отмены токена обычно пишут отдельный кеш, в который складывают отклоненные токены. Я чуть-чуть заглянул в JwtSecurityTokenHandler и обнаружил что он имеет собственный кеш, который не нашел как можно обновить, или в целом почистить.
Вопросы
- Как долго хранятся токены в JwtSecurityTokenHandler? Может ли произойти переполнение кеша?
- Есть ли реализации с Redis без использования JwtSecurityTokenHandler для выдачи токенов?
- Что если реализовать свой TokenManager который при генерации нового токена не будет использовать JwtSecurityTokenHandler, токен будет записываться в Redis и MongoDb. Редис - для постоянного чтения, MongoDb - как долгое хранилище, если что-то пойдет не так и система упадет, тогда при новом старте редис наполнится данными из монги и пользователям не придется перелогиниваться. Это жизнеспособный подход, или есть какие-то подводные камни? Учитывая что система микросервисная, и в разных местах требуется проверка подлинности.
Заранее спасибо.