По jwt

Всё что касается построения API
Ответить
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

По jwt

Сообщение maleks »

Приветствую.
Вопрос, кто работал, с sizeg/yii2-jwt
, зачем там

Код: Выделить всё

            ->setIssuer('http://example.com')// Configures the issuer (iss claim)
            ->setAudience('http://example.org')// Configures the audience (aud claim)
            ->setId('4f1g23a12aa', true)// Configures the id (jti claim), replicating as a header item
, краткий смысл?

Смотрю какой то рецепт, не самый простой в разбирании, выложен тут:
https://www.yiiframework.com/wiki/2568/ ... n-tutorial
, с обновлением токенов, хранением их в базе.

А какие недостатки имеет тот рецепт, что в самом расширении описан ?
Реализовал его, потестил, вроде все нормально работает, только поставил

Код: Выделить всё

->setExpiration(time() + 3600 * 24 * 7)
, т.е. фронт логинится, получает себе токен, и пользуется им неделю.
А как истечет срок токена, то и будет выдавать Незарегистрирован, и фронт в этом случае перелогинится
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: По jwt

Сообщение SiZE »

maleks писал(а): 2022.02.02, 11:14 , зачем там

Код: Выделить всё

            ->setIssuer('http://example.com')// Configures the issuer (iss claim)
            ->setAudience('http://example.org')// Configures the audience (aud claim)
            ->setId('4f1g23a12aa', true)// Configures the id (jti claim), replicating as a header item
, краткий смысл?
Смысл можно почитать в RFC https://datatracker.ietf.org/doc/html/r ... ection-4.1

Это опциональные утверждения (claim)

iss - сервис выдавший токен.

aud - подписчики, те кому предназначается этот токен

jti - уникальный ID токена в вашем проекте

Утверждения iss и aud можно использовать, например, для проверки и разделения доступа. JWT токен не хранит где либо состояние, он носит, так сказать, все в себе.

Предположим у вас есть сайт где пользователь может просматривать фото и видео. Эти сервисы находятся на разных серверах, у них своя БД и они понятия не имеют о правах пользователя, формируя нужных получателей, эти сервисы могут идентифицировать, что токен предназначен для них и авторизовать пользователя.

Утверждение jti больше подходит для создания refresh токена, чтобы можно было отозвать его.

Например, после аутетификации пользователя, вы ему выдали refresh токен с временем жизни 1 неделя. С данным refresh токеном пользователь запрашивает обычный JWT токен c временем жизни 10 минут. При необходимости вы можете отозвать refresh токен (да, придется хранить где-то его идентификатор) и пользователь гарантированно через 10 минут останется без доступа.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: По jwt

Сообщение maleks »

Типа категорий токена.
Мне пока такое не надо.

Спасибо.
Yii2 universal module sceleton - for basic and advanced templates
Ответить