Найти тему

JWT токен или как пользователь сам хранит инфу о себе


Для того чтобы понять, что пользователь авторизован, используют сессии. Это упрощенный способ идентификации пользователя, которая создается после успешной авторизации. Кто-то то хранит все в базе, кто то в сессии PHP, а кто то в JWT токенах. Принцип прост, мы даем пользователю набор символов или же ключ или токен (не суть), которые он передает при каждом действии на сайте или приложении. Так мы понимаем что он это он, и если у него нет прав на определенное действие, ему будет возвращена ошибка.

Но если с хранением данных пользователя на сервере все понятно. Когда пользователь отправляет нам этот ключ, мы подтягиваем с сервера базовую инфу о нем, его ID в системе например, или логин. И дальше уже работаем с этим.

То как можно доверить пользователю хранить информацию о том, какой у него ID или логин. Можно же представиться любым пользователем нашего проекта, даже администратором... Не все так просто.

Я уже писал о хешах выше. Они тут очень помогают. На сервере создается секретная фраза, которая соединяется с информацией о пользователе, и все это хешируется. В итоге получается набор символов, который можно отдать пользователю.

Пользователь при каждом действии отравляет токен нам. А мы понимаем что он это он, потому что внутри зашифрована информация о нем. Мы проверяем эту информацию с помощью хеша и секретной фразы. То есть всю его информацию мы снова берем и соединяем с секретной фразой, хешируем и если хеши совпадают, значит пользователь действительно тот за кого себя выдает. Он не сможет подделать сессию потому что у него нет секретной фразы.

Так вот и работают JWT токены, их используют многие крупнейшие компании от ВК до Яндекса. Это может сэкономить мощность сервера на поиски базовой информации о пользователе. Вы тоже можете брать на вооружение такой способ идентификации зарегистрированного пользователя в своих проектах, главное нигде не палить секретную фразу и делать её посложнее.

Всем хорошего дня!
JWT токен или как пользователь сам хранит инфу о себе  Для того чтобы понять, что пользователь авторизован, используют сессии.
1 минута