Size: a a a

GraphQL — русскоговорящее сообщество

2018 May 07

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
Sergey Protko
делай токены на 5 минут
Они на 10 стоят
Вся проблема в рефреш токенах, которые выдаются на продолжительный срок. Блеклист разростается быстрее, чем вайтлист, плюс, что вайтлист, что блеклист - это все равно database hit.
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
В чем конкретно проблема вайтлиста? На мой взгляд точно так же можно сказать, что jwt не нужны, если есть какой-нибудь лист в приципе
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
а зачем ревоукать один токен, если можно сделать на порядок проще - тупо подмешивать из юзера какой-нибудь хеш
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
получится, что сброс - это тупо обновление этого хеша у юзера
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
правда тогда вообще все более ранние токены отлетят
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
но это мелочи
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
Я думаю это не проблема с ранними токенами. Идея интресная, надо будет подумать в этом ключе)
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
А что если нужно определённый девайс ривоукить?
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
На который был уже выдан токен
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
о, вот тут уже так просто не получится
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
но тут и JWT тогда не нужен уже
источник

KN

Kirill Nesmeyanov in GraphQL — русскоговорящее сообщество
задача JWT - это быть DB-agnostic штукой
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
сходить в базу что бы сгенерить ключ которым проверить подпись.... хм.... прям явно видно что шаришь в HMAC)
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
Yuno Sørensen
Они на 10 стоят
Вся проблема в рефреш токенах, которые выдаются на продолжительный срок. Блеклист разростается быстрее, чем вайтлист, плюс, что вайтлист, что блеклист - это все равно database hit.
блэклист спокойло ложится в рэдис, так как у токенов ограничено время жизни + можно сделать фильтр блума что бы совсем мало занимало.

Что до рефрешей - их то ревоукать не проблема, это ж не JWT. Они в базе там лежат.
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
да и обычно штуки которые меняют креды и делают невалидными оные находятся в том же контексте что и штука которая токены эти выдает.
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
так что вообще никаких проблем
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
Sergey Protko
блэклист спокойло ложится в рэдис, так как у токенов ограничено время жизни + можно сделать фильтр блума что бы совсем мало занимало.

Что до рефрешей - их то ревоукать не проблема, это ж не JWT. Они в базе там лежат.
Может я чего то неправильно уловил, но рефреши у меня - это тоже токены, и они лежат в редисе в этом самом вайтлисте
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
Yuno Sørensen
Может я чего то неправильно уловил, но рефреши у меня - это тоже токены, и они лежат в редисе в этом самом вайтлисте
идея в том что вайтлист чувствителен к консистентности а блэклист нет и из-за этого он легко скейлится)
источник

SP

Sergey Protko in GraphQL — русскоговорящее сообщество
а так как блэклист всегда меньше чем вайтлист то ты можешь хоть у каждой ноды держать рядом реплику
источник

YS

Yuno Sørensen in GraphQL — русскоговорящее сообщество
Окей, спасибо за наводку, когда доберусь до auth сервиса, гляну что там можно переписать, чтобы адекватные выглядело
источник