使用JWT令牌进行身份验证的最佳做法是什么?

时间:2018-03-21 21:17:54

标签: authentication spring-boot oauth-2.0 jwt spring-security-oauth2

目前,我的Spring Boot项目由很少的REST服务组成;资源服务,身份验证服务等。

每项服务的名称都是自我描述性的,但这里是角色,

  • 资源服务:负责管理用户,交易,供应商等所有资源。
  • 身份验证服务器:负责根据密码创建JWT访问令牌' grant_type请求

框架使用公钥对我进行JWT令牌验证。目前,如果请求的JWT令牌有效,则资源服务器处理任何请求。但是,我不确定最佳做法是什么,以及如何验证请求者是否拥有所请求的资源。

例如,如果用户Jacob想要检索Paul使用有效JWT创建的事务。我的应用程序需要验证请求者,Jacob对Paul的交易没有所有权。

提前致谢!

2 个答案:

答案 0 :(得分:1)

我认为,最好的做法是让您的访问令牌短暂存在,并将它们放在远离用户代理的服务器端,并始终在线路上使用SSL。

JWT访问令牌是持有人令牌。顾名思义,无论谁拥有它们,都可以使用它们。

将访问令牌视为fiver(£5),将事务资源服务器视为barman。

现在,让我们说你放弃5英镑。

这是我的幸运日!我捡起来,去酒吧买一品脱。

酒保是否问我5英镑钞票属于谁?

没有

就像你的服务器不关心Jacob或Paul是否带有令牌。

答案 1 :(得分:-1)

我认为JWT令牌背后的想法是你无法从令牌本身确定它是谁,你只需要检查令牌是否有效,你还要检查时间戳。