目前,我的Spring Boot项目由很少的REST服务组成;资源服务,身份验证服务等 .
每个服务的名称都是自我描述的,但这里是角色,
-
资源服务:负责管理用户,交易,供应商等所有资源 .
-
认证服务器:负责在'password' grant_type请求时创建JWT访问令牌
该框架使用公钥对我进行JWT令牌验证 . 目前,如果请求的JWT令牌有效,资源服务器将处理任何请求 . 但是,我不确定什么是最佳实践以及如何验证请求者是否拥有所请求的资源 .
例如,如果用户Jacob想要检索Paul使用有效JWT创建的事务 . 我的应用程序需要验证请求者,Jacob对Paul的交易没有所有权 .
提前致谢!
2 回答
我想说,最佳做法是保持您的访问令牌短暂存在,并将它们保留在远离用户代理的服务器端,并始终在线路上使用SSL .
JWT访问令牌是持有人令牌 . 顾名思义,无论谁拥有它们,都可以使用它们 .
将访问令牌视为fiver(£5),将事务资源服务器视为barman .
现在,让我们说你把5英镑放在地板上 .
这是我的幸运日!我捡起来,去酒吧买一品脱 .
酒保是否问我5英镑钞票属于谁?
没有 .
就像你的服务器不关心Jacob或Paul是否带有令牌 .
我认为JWT令牌背后的想法是你不能确定它来自令牌本身,你只是检查令牌是否有效,你还检查时间戳 .