Size: a a a

2020 October 09

DG

Dmitriy Gritsenko in Yii Framework 3
Dmitriy S
Ну, в yii это не сильно акиуально, как минимум для identity в базу слазить надо)
А нужна она тебе в каждом запросе?
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy Gritsenko
А нужна она тебе в каждом запросе?
Да, если ты права в jwt не передаешь
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Ну вот смотри. Если у тебя rbac, то тебе Identity нафиг не нужна. Ты через can() проверяешь может юзер что-то делать или нет.
источник

DG

Dmitriy Gritsenko in Yii Framework 3
А если у тебя просто у юзера есть поле role, положи его в JWT и наслаждайся 😊
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Yii::$app->user->can() имелось в виду
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Для Аутентификации база не нужна. Для авторизации - уже да
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy Gritsenko
Ну вот смотри. Если у тебя rbac, то тебе Identity нафиг не нужна. Ты через can() проверяешь может юзер что-то делать или нет.
Нет, чтобы проверить can нужна identity. Просто в yii оно обычно через жопу делается. Жвт задуман так, что ты должен передать в токене и то, что юзер может can, тогда и identity тчнуть не нужно. А в yii2 ты без identity не сможешь вызвать can(...)
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Dmitriy Gritsenko
Yii::$app->user->can() имелось в виду
Вот так она вызывается
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Не у identity, а у user
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy Gritsenko
Вот так она вызывается
Ну так чтобы юзер появился, его нужно аутентифицировать, а значит дернуть из базы. А жвт разрабатывался для того, чтобы опустить этот момент)
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Dmitriy S
Нет, чтобы проверить can нужна identity. Просто в yii оно обычно через жопу делается. Жвт задуман так, что ты должен передать в токене и то, что юзер может can, тогда и identity тчнуть не нужно. А в yii2 ты без identity не сможешь вызвать can(...)
Никто не мешает положить в JWT список прав 🤷🏻‍♂️
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy Gritsenko
Никто не мешает положить в JWT список прав 🤷🏻‍♂️
Так я о чем. Но тогда и структура приложения другая будет.
источник

Д

Дмитрий in Yii Framework 3
хмм.. а если НЕ лазить в базу за refresh вообще . забить на это. то как проверить что этот refresh в первый раз прилетел, а не в 20й?
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
хмм.. а если НЕ лазить в базу за refresh вообще . забить на это. то как проверить что этот refresh в первый раз прилетел, а не в 20й?
Есть два подхода. Первый - ты пишешь рефреш в базу и строго проверяешь кому и когда его выдал. Если есть что подозрительное - блочишь. Второй, по рефрешу отдаешь новый аксес токен и рефреш-токен, это проще и по безопасности примерно равно традиционным сессиям.
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Есть два подхода. Первый - ты пишешь рефреш в базу и строго проверяешь кому и когда его выдал. Если есть что подозрительное - блочишь. Второй, по рефрешу отдаешь новый аксес токен и рефреш-токен, это проще и по безопасности примерно равно традиционным сессиям.
вот, во втором случае, я по рефрешу отдал новые токены. а кто-то ломится со старым, но не истекшим refresh-ем ?
источник

T

TradersVE in Yii Framework 3
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Если новый рефреш выдал, записал его в базу вместо старого
источник

Д

Дмитрий in Yii Framework 3
Dmitriy Gritsenko
Если новый рефреш выдал, записал его в базу вместо старого
а если ничего не писать в базу? с базой-то понятно
источник

DG

Dmitriy Gritsenko in Yii Framework 3
У рефреш нет срока жизни и это не JWT. Это просто рандомная строка
источник

DG

Dmitriy Gritsenko in Yii Framework 3
Дмитрий
а если ничего не писать в базу? с базой-то понятно
В кэш 🤷🏻‍♂️
источник