【发布时间】:2021-10-21 05:00:31
【问题描述】:
我想知道将我的 Spring Boot 应用程序中生成的 JWT 发送到我的 Flutter 移动应用程序的最佳且安全的方式是什么。我可以将它发送到响应正文中,我知道这在网络中不是一个好的做法,但在移动设备方面会出现问题吗?
这就是我返回 JWT 的方式:
public ResponseEntity<?> signin(String username, String password) {
try {
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
String token= jwtTokenProvider.createToken(username, userRepository.findByUsername(username).getRoles());
//return new JwtResponse(token,username,userRepository.findByUsername(username).getRoles());
return ResponseEntity.ok(new AuthToken(token));
} catch (AuthenticationException e) {
throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY);
}
}
【问题讨论】:
-
为什么在响应正文中发送 jwt 令牌不是一个好习惯?能详细点吗?
-
我不知道这就是为什么我问如果我将 jwt 令牌发送到响应正文中的移动应用程序是否存在被盗的风险?我想知道将其发送到移动应用程序的最佳做法是什么
-
在标题或正文中发送它应该不会有什么不同。重要的是您的连接是安全的 (SSL)。如果您从移动设备发出请求以获取令牌,请使用正文返回它。如果您从移动设备向受限资源发出请求,请将其发送到标头以进行身份验证。
标签: spring-boot flutter jwt