В приложении, которое я создаю, мы используем токены JWT как токен маркера OAuth.Значок несущей становится слишком большим
Скажем, у нас есть коллекция ресурсов под названием things
, адресуемая thing
ID, напр. things/1
, things/44
и т.д.
В настоящее время, когда кто-то запрос маркер доступа с областью things
, мы включаем список всех прав, которые пользователь имеет к каждому из things
он имеет право:
{
"sub": "Romeo",
"scope": [ "things" ],
"things": {
"1": [ "read", "write", "delete" ],
"44": [ "read", "write"],
}
// ...
}
Это прекрасно работает, но все идет плохо, когда у пользователя много things
. Поскольку все права закодированы внутри токена JWT, токен становится действительно большим для каждого thing
пользователя.
Это не масштабируемо, и мне нужно найти решение для этого. Я мог бы охватить токены, чтобы они принадлежали одному thing
за раз, но тогда управление маркером для клиента, который управляет, становится ад (мне нужен токен, который может содержать токены и должен хранить один токен за thing
).
Я не могу избавиться от токенов-носителей, потому что некоторые из наших компонентов не могут разговаривать с маркером по нескольким причинам.
Есть ли стандартный способ решить эту проблему? Я подумывал о том, чтобы сделать маркеры с заменой области things
, поэтому я могу обменивать ограниченные жетоны, которые имеют только часть things
в них для других токенов, в которых есть другие части things
.
Вы нашли решение этой проблемы? – smokedice