Как стать автором
Обновить

Комментарии 6

А не думали решить проблему с разрастающимся размером JWT токена через битовую маску? Например
доступ к X - это 1
доступ к Y - это 2
доступ к Z - это 4
доступ к XY - это 1 + 2 = 3
доступ к XYZ - это 1 + 2 + 4 = 7

с помощь битовой маски можно легко будет достать все права доступа. Хранить это можно в виде той же строки "0000010000", тогда при ограничении заголовка в 4кб вы сможете записать права на 512 систем, если нужно больше, то можно хранить в виде целых чисел, тогда вы сможете записать права на 262 144 систем (unsigned big int может поместить в себя 64 системы и занимает 1 байт -> 4096 * 64 = 262 144)

P.S. вспомнил отличный пример реализации у VK: https://dev.vk.com/reference/access-rights

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

Ключевое, что битовую маску нельзя писать строкой как есть, иначе не будет никакой экономии, надо использовать Base64 сериализацию. Тратить байт на один бит это дорого, а в строковом представлении на каждый 1 или 0 будет уходить байт (кодировка заголовков ANSI).

Поддерживаю. Тоже как-то использовал такой подход. Получается очень компактно не только при передачи по сети, но и при хранении в бд. И работать с таким форматом удобно

GT свою очередь помещался в Header запроса.

"в" потеряно

Поэтому удалось найти компромисс с ментейнерами библиотеки graphql-dotnet и добавить глобальный флаг-переключатель «экспериментального» функционала.

На самом деле не такой уж он глобальный, а как раз весьма локальный, потому что включает/отключает эту фичу на конкретной схеме (тип Schema). Приложение может хостить сразу несколько схем, выставляя их наружу по разным урлам вроде ~/cats/graphql , ~/dogs/graphql . И вот по сути для каждой такой связки url+schema можно настраивать поведение. Короче говоря, флаг этот не статический, а экземплярный и живёт в каждой схеме.

Настоятельно рекомендую присмотреться

рекомендуем

Зарегистрируйтесь на Хабре, чтобы оставить комментарий