Ответы пользователя по тегу JSON Web Token
  • Несколько сессий в sql базе jwt?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для JWT часто используют схему с двумя токенами. Основной токен выдаётся на короткое время (от нескольких минут до нескольких часов) и может содержать в себе набор данных, связанных с пользователем (роль, права, и т.п.). Второй токен (refresh-токен) выдаётся на более длительное время (от нескольких часов до нескольких дней), и содержит только идентификатор пользователя.
    Основной токен нигде не хранится, refresh-токен записывается в БД с привязкой к пользователю.
    Все обычные запросы к серверу сопровождаются основным токеном.
    Каждый раз, когда срок жизни основного токена заканчивается, клиент делает запрос на его обновление, передавая при этом refresh-токен. Сервер проверяет по БД, не был ли уже использован данный refresh-токен.
    Если refresh-токен просрочен или такого refresh-токена в БД нет, то запрашивается полная аутентификация/авторизация по логину/паролю.
    Если refresh-токен уже был использован, то инвалидируются (удаляются из базы) все refresh-токены данного пользователя и требуется полная аутентификация/авторизация.
    Если всё в порядке (непросроченный refresh-токен в базе есть и неиспользован), то ставится отметка об его использовании и для клиента генерируется новая пара токенов (основной + refresh).
    Периодически БД чистится от токенов с истёкшим сроком действия.
    Ответ написан