springboot怎么获取当前用户id信息,获取到之后存入数据库创建者值里面,这个该怎么去获取
时间: 2024-03-16 22:42:51 浏览: 180
Springboot+maven+idea+mysql实战之获取数据库信息显示在前端
在Spring Boot中获取当前用户id的方式也取决于您使用的身份认证方式。以下是一些常用的方式:
1. 基于Session的身份认证
如果您使用基于Session的身份认证,可以使用`HttpServletRequest`对象来获取当前用户id信息。具体实现方式如下:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private HttpServletRequest request;
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// 获取当前用户id
String userId = (String) request.getSession().getAttribute("userId");
// 设置创建者信息
user.setCreatorId(userId);
// 保存用户信息到数据库
// ...
return user;
}
}
```
2. 基于Token的身份认证
如果您使用基于Token的身份认证,可以使用`@AuthenticationPrincipal`注解来获取当前用户信息。具体实现方式如下:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("/users")
public User createUser(@AuthenticationPrincipal Jwt jwt, @RequestBody User user) {
// 获取当前用户id
String userId = jwt.getSubject();
// 设置创建者信息
user.setCreatorId(userId);
// 保存用户信息到数据库
// ...
return user;
}
}
```
无论使用何种方式,获取到用户id之后,您可以将其作为创建者信息存入数据库中。
阅读全文