| | |
| | | import com.weiwojc.model.entity.User; |
| | | import com.weiwojc.service.UserService; |
| | | import com.weiwojc.utils.JwtUtils; |
| | | import com.weiwojc.utils.TokenBlacklistManager; |
| | | import jakarta.servlet.http.HttpServletRequest; |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | |
| | | private final UserService userService; |
| | | private final JwtUtils jwtUtils; |
| | | private final TokenBlacklistManager tokenBlacklistManager; |
| | | |
| | | @PostMapping("/register") |
| | | public Result<User> register(@Valid @RequestBody UserRegisterDTO registerDTO) { |
| | |
| | | return Result.success("登录成功", token); |
| | | } |
| | | |
| | | @PostMapping("/logout") |
| | | public Result<String> logout(HttpServletRequest request) { |
| | | String token = request.getHeader("token"); |
| | | if (token == null || token.isEmpty()) { |
| | | return Result.error("未登录状态"); |
| | | } |
| | | |
| | | // 验证token是否有效 |
| | | if (!jwtUtils.validateToken(token)) { |
| | | return Result.unauthorized("token无效或已过期"); |
| | | } |
| | | |
| | | // 将token加入黑名单 |
| | | tokenBlacklistManager.addToBlacklist(token); |
| | | return Result.success("退出登录成功"); |
| | | } |
| | | |
| | | @GetMapping("/info") |
| | | public Result<User> getUserInfo(HttpServletRequest request) { |
| | | String token = request.getHeader("token"); |