feat(auth): 实现登录认证和权限控制功能

- 添加用户登录和登出功能
- 实现 Token 过期和无效的错误处理
- 添加路由权限控制,未登录用户重定向到登录页
- 优化登录失败的错误提示
- 修复搜索功能的返回数据问题
This commit is contained in:
ikmkj
2025-08-06 23:42:18 +08:00
parent 2a507659c2
commit 72c916da4d
9 changed files with 89 additions and 34 deletions

View File

@@ -13,6 +13,7 @@ import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*;
@@ -57,10 +58,14 @@ public class UserController {
})
@PostMapping("/login")
public R<Map<String, String>> login(String username, String password){
String token = userService.login(username, password);
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", token);
return R.success(tokenMap);
try {
String token = userService.login(username, password);
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", token);
return R.success(tokenMap);
} catch (BadCredentialsException e) {
return R.fail("用户名或密码错误");
}
}
@Operation(summary = "删除当前登录的用户")