Как идентифицировать браузер на сервере?

Всем привет, хочу реализовать мини двухэтапную авторизацию (на клиенте используется react, на сервере express).

Идея такова:
Есть два браузера ("браузер 1" и "браузер 2").
При авторизации через "браузер 1", на сервер приходит почта и пароль, при успешной авторизации, для пользователя создаются два токена access и refresh, они записываются в таблицу базы данных:
Структура таблицы

  • id пользователя
  • client (рандомная строка)
  • access token
  • время смерти access token
  • refresh token
  • Булевое значение находиться ли access токен в черном списке



Пользователю возвращается в теле ответа access token и его время жизни,а так же в http only куках возвращается refresh token и client.
При авторизации, этого же пользователя через "браузер 2", проверяется есть ли в бд токен, выданный данному пользователю, если есть, то ему в "браузер 1" приходит код, который он должен ввести в "браузер 2", если код совпадает, пользователю создается новый токен, для "браузер 2".

Проблема:
Пользователь авторизовался, получил куки, очистит все куки относящиеся к моему сайту, его перекинет на страницу авторизации (так как если нет ни access token, ни refresh token значит он не авторизирован и его данные я не смогу подтянуть с сервера).
Так вот, перенаправило его на страницу авторизации, он вводит снова свои данные, на сервере происходит проверка, есть ли токен, который выдавался пользователю, в базе он есть, так как удалил пользователь куки на стороне клиента, а не на стороне сервера, а если есть токен, значит ему нужно ввести код, который по идеи должен высылаться на авторизованный аккаунт. Но по факту, он не может узнать код, так как на клиенте нет ни какой его информации выданной сервером.

Вопрос:
Как можно идентифицировать браузер на сервере, что бы даже, если пользователь специально удалит все куки, на сервере я мог узнать этого пользователя ?

Заранее спасибо.
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 апр. 2024, в 14:20
500 руб./за проект
16 апр. 2024, в 14:03
5000 руб./за проект
16 апр. 2024, в 13:17
5000 руб./за проект