繁体   English   中英

从成功的身份验证中返回 JWT 令牌

[英]Return JWT token from successful authentication

我创建了这个端点来验证用户:

@PostMapping("/authorize")
public String login(@Valid @RequestBody AuthenticationDTO resetDTO) {
    return userRestService.authorize(resetDTO.getName(), resetDTO.getPassword());
}

认证成功后返回token。 例如:

eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImF1dGgiOlt7ImF1dGhvcml0eSI6IlJPTEVfQURNSU4ifV0sImlhdCI6MTU5MzUzMjE4NiwiZXhwIjoxNTkzNTMyNDg2fQ.gevNLXsfe8F4MnfDZJK5GhhFn0MskoQejfUUqQjh0d_sa-wyloRf2zOQIhBkn1OEDR4ZyRvIhhEtWPrH33cLPg 

认证后返回与 JWT 令牌相关的 DTO 格式的最佳做法是什么? 例如,将令牌返回为如下格式是否是个好主意

{
   Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImF1dGgiOlt7ImF1dGhvcml0eSI6IlJPTEVfQURNSU4ifV0sImlhdCI6MTU5MzUzMjE4NiwiZXhwIjoxNTkzNTMyNDg2fQ.gevNLXsfe8F4MnfDZJK5GhhFn0MskoQejfUUqQjh0d_sa-wyloRf2zOQIhBkn1OEDR4ZyRvIhhEtWPrH33cLPg
}

在这种情况下有哪些好的做法?

除了返回 JSON 始终返回 object (始终将 arrays、数字、字符串包装在顶级对象中)之外,没有真正好的做法。 对于您的特定用例,您可以以oauth2 授权框架为例并返回如下内容:

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache

{
   "access_token":"2YotnFZFEjr1zCsicMWpAA",
   "token_type":"Bearer",
   "expires_in":3600,
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM