首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JWT /无状态体系结构和大型安全数据

JWT /无状态体系结构和大型安全数据
EN

Stack Overflow用户
提问于 2018-09-13 17:13:15
回答 1查看 101关注 0票数 0

我对“无状态”的概念有点困惑。我有一种情况,我的应用是基于无状态架构的。身份验证是使用JWT令牌进行的(没有使用KeyCloack和OpenAM这样的身份验证提供程序)。

这是一个简单的机制,前端登录到后端,后端用一个包含用户数据(包括ID,角色...)的JWT令牌应答,.The令牌将在每个http请求的头部发出。

现在涉及到了其他安全概念(除了角色之外,我们还在数据上添加了安全性)。我的问题是,即使有良好的安全配置(创建组,在组中隐藏细节,只将组id放在令牌中),大小也会快速增长。

因为我处于无状态上下文中,所以每个http请求都必须提供安全上下文,以便服务器能够应答它。

大多数服务器都有8K标头大小的限制,据我所知,建议将JWT令牌放在标头中。

我的问题是如何在不影响的情况下工作:-无状态体系结构:服务器不能存储任何会话信息。- Identity :要执行请求,服务器必须知道用户可以访问哪些角色和数据范围- Header限制: 8K (我可以增加,但我不认为这是一个好主意)。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-09-13 17:26:51

如果我误解了你的实际问题,我很抱歉,但你可以做一个拦截器,如果令牌存在于localStorage中,它将附加到头部。如果你想通过角色限制用户的能力,你只需要在一个单例(服务)中存储某种类型的currentUser对象,在那里你将拥有所有的数据,比如角色等。所以你可以在组件中获取这些数据,并检查是否允许currentUser进行更改。在这种情况下,您可以将用户操作限制为不允许发出请求,这只允许授权/授权的用户。此外,如果有一些路由不应该对所有用户都可访问,而只能由管理员访问(例如),那么您可以创建一个路由守卫,并在canActivate中的路由上使用它。我想听更多细节,以防我真的误解了你的问题。而且,只有当security data在JWT令牌中提供,或者您能够请求它并将其存储在您的currentUser对象中(该对象将在logout()事件时被清除),或者当服务器将响应401,403错误时,这一切才有意义。希望这里至少有一些观点能有所帮助。

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

https://stackoverflow.com/questions/52310418

复制
相关文章

相似问题

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