首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无记名代币太大了

无记名代币太大了
EN

Stack Overflow用户
提问于 2016-09-13 09:01:02
回答 2查看 9.5K关注 0票数 10

在我正在构建的应用程序中,我们使用JWT令牌作为OAuth标记。

假设我们有一个名为things的资源集合,可通过thing ID寻址,例如。things/1things/44等。

当前,每当有人请求具有作用域things的访问令牌时,我们都会包含用户对其有权访问的每个things拥有的所有权限的列表:

代码语言:javascript
复制
{
   "sub": "Romeo",
   "scope": [ "things" ],
   "things": {
     "1": [ "read", "write", "delete" ],
     "44": [ "read", "write"],
   }
  // ...
}

这很好,但是当用户拥有大量的things时,事情就变得糟糕了。因为所有的权限都是在JWT令牌中编码的,所以对于用户拥有的每个thing,令牌都会变得更大。

这是不可伸缩的,我需要找到一个解决方案。我可以一次对属于单个thing的令牌进行范围调整,但是对于管理的客户端的令牌管理就会变得非常糟糕(我需要一个令牌,它可以列出令牌,并且每个thing需要保留一个令牌)。

由于多种原因,我们的一些组件无法与令牌发行者对话,所以我无法摆脱Bearer令牌。

有标准的方法来解决这个问题吗?我正在考虑使用things作用域来创建可互换的令牌,这样我就可以将只包含things一部分的受限令牌转换为在其中包含things其他部分的其他令牌。

EN

回答 2

Stack Overflow用户

发布于 2016-09-13 13:25:16

这些信息不一定需要在令牌中。只要令牌包含对用户的引用,资源服务器就可以对某个后端服务/数据库进行查找,以检索与当时请求的资源完全相关的相应权限。

该服务不需要是授权服务器本身;它也可以是数据库或任何类型的后端系统(可能与授权服务器将与之交谈的相同)。

票数 11
EN

Stack Overflow用户

发布于 2017-09-30 08:17:27

我想汉斯-兹说得对。oAuth不会为您解决这个问题。

当您遇到痛苦障碍时,我建议您实现一个用户服务,其中可以使用JWT令牌请求"things“。

为了推迟痛苦屏障,您可以考虑更改为JSON Web令牌或支持令牌压缩的另一个实现,或者在通过网络发送时用原生质重新编码令牌。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39466066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档