springboot token登录代码
时间: 2023-12-21 07:04:13 浏览: 75
springboot代码
以下是一个简单的 Spring Boot Token 登录的示例代码:
```java
@RestController
@RequestMapping("/api/auth")
public class AuthController {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private JwtTokenProvider tokenProvider;
@PostMapping("/login")
public ResponseEntity<?> authenticateUser(@RequestBody LoginRequest loginRequest) {
Authentication authentication = authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(
loginRequest.getUsernameOrEmail(),
loginRequest.getPassword()
)
);
SecurityContextHolder.getContext().setAuthentication(authentication);
String jwt = tokenProvider.generateToken(authentication);
return ResponseEntity.ok(new JwtAuthenticationResponse(jwt));
}
}
```
其中,`LoginRequest` 是一个简单的 POJO 类,包含了用户名或邮箱和密码的字段。`JwtTokenProvider` 是一个 JWT Token 的生成和验证工具类。`JwtAuthenticationResponse` 是一个包含 JWT Token 的简单 POJO 类,用于返回给前端。
在上面的代码中,`authenticateUser` 方法首先通过 `authenticationManager` 对用户进行身份验证,然后生成 JWT Token 并将其返回给前端。在生成 JWT Token 的过程中,我们使用了 `tokenProvider.generateToken(authentication)` 方法,它会将用户的身份信息封装到 JWT Token 中,并设置过期时间等参数。
需要注意的是,在上面的代码中,我们使用了 `SecurityContextHolder.getContext().setAuthentication(authentication)` 方法将用户的身份信息存储到了 `SecurityContextHolder` 中,以便在后续的请求中进行身份验证。
阅读全文