spring-boot - 如何将 JWT 从 spring boot 发送到 Flutter?

标签 spring-boot flutter jwt

我想知道将在我的 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 token ,无论是在 header 还是在正文部分。它可以很容易地被其他人通过客户端上的一些应用程序看到和复制。

您可以采取的保护数据的步骤是

  • 首先,每次从客户端收到 JWT token 时,您需要检查 token 是否被客户端篡改
  • 其次,您应该添加一个created-at 字段,您可以在其中发送 token 创建时间的时间戳。这将防止有人在 token 被盗后永远冒充 token 的所有者,因为 token 在一段时间后将失效。

在采取这些安全措施后,您可以简单地在响应的正文部分发送您的 token 。当然,还有更多最佳实践可供遵循,但这些都是一个很好的起点。

关于spring-boot - 如何将 JWT 从 spring boot 发送到 Flutter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68848632/

相关文章:

flutter - 有没有办法在 Flutter 中控制系统音乐?

security - 单页应用程序和 CSRF

java - org.springframework.boot.SpringApplication无法解析

java - 无法使用 WebFlux 在 Spring Boot 中使用 H2 和 R2DBC 创建 ConnectionFactory 错误

flutter GestureDetector ListView

java - 如何从 JWT 获取用户名?

jwt - 没有 AuthHttp 提供者! Angular2-Jwt 提供程序问题

spring - “spring.datasource.testWhileIdle”是一个未知属性。你的意思是 'spring.datasource.tomcat.abandon-when-percentage-full' 吗?

postgresql - 使用 JPA 的 Criteria API 按日期间隔分组

flutter - Dart Set<E> 如何比较项目?