ALEXPTS
WEB DEVELOPER
PHP, NodeJS, JavaScript, etc.
Главная Приколы Стена
Cкилы: Web Php NodeJs Tests Storages

Переход на JWT сессии

#Dev

JWT (JSON Web Tokens) начали использовать на работе во второй половине 2015 года. Сейчас появилось время, чтобы как следует разобраться и применять в своих наработках или же нет.

Мануал, отладчик и ссылки на реализации на разных языках программирования можно найти на сайте jwt.io.

Взял реализацию firebase/php-jwt, но поработав с кодом и поняв, что график на сайте jwt.io не совсем корректен. Библиотека firebase/php-jwt не реализует проверку полей 'aud', 'jti', 'sub'. Также код показался немного простым. В итоге остановился сейчас на библиотеке emarref/jwt, которая имеет в разы меньше звезд на github, но зато реализует проверку этих полей. А также предоставляет отдельно метод декодирования и верификации токена.

Теперь токены не хранятся в базе данных, что безусловно облегчит жизнь БД. Каждый авторизованный пользователь не будет на каждый запрос вычитывать токен по primary key.

Некоторые фичи, вроде каптчи, которые можно было сделать, храня токен/сессии на сервере, с jwt уже не прокатят. Следует признать, что это разные фичи и их верно разделять, даже если они удобно ложились на старые рельсы.