Проверка подлинности на основе токенов в REST API

Я пытаюсь реализовать подход аутентификации на основе токенов:

Каждый успешный вход создает новый токен.

Если пользователь выбирает «держать меня в системе» или пользователь использует мобильное устройство, токен сохраняется в базе данных Redis без истечения срока действия. В противном случае токен истекает через 20 минут.

После проверки подлинности пользователя токен проверяется по каждому последующему запросу в моей базе данных Redis.

Мне интересно, как я могу идентифицировать устройства. В случае мобильных устройств, я могу использовать идентификатор устройства. Но как я могу определить браузер?

Пример: пользователь входит в систему с помощью Chrome и выбирает «держать меня в системе». Токен создается и сохраняется с именем браузера в Redis. Если пользователь входит в систему из Firefox, сохраняет маркер и «Firefox» в базе данных. Я сохраняю токен в Redis, тогда как токен создается при успешной аутентификации. Можно ли сохранить только токен и браузер, в котором он используется? Или мне тоже нужно сохранять IP?

Дополнительный вопрос: как избежать, чтобы злоумышленники украли токен из cookie?

Ответы на вопрос(2)

Ваш ответ на вопрос