Spring Boot + Vue + Shiro 实现前后端分离,写得太好了!
以下是一个简化的核心函数示例,展示了如何在Spring Boot后端使用Shiro进行用户认证和授权:
// UserController.java
@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
�te UserService userService;
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginPayload loginPayload) {
return ResponseEntity.ok(userService.login(loginPayload));
}
@GetMapping("/logout")
public ResponseEntity<?> logout() {
userService.logout();
return ResponseEntity.ok().build();
}
@GetMapping("/permissions")
public ResponseEntity<?> getPermissions() {
return ResponseEntity.ok(userService.getPermissions());
}
// ...其他API端点
}
// UserService.java
@Service
public class UserService {
@Autowired
private SecurityManager securityManager;
@Autowired
private Subject subject;
public Map<String, String> login(LoginPayload loginPayload) {
// 使用Shiro进行登录
UsernamePasswordToken token = new UsernamePasswordToken(loginPayload.getUsername(), loginPayload.getPassword());
subject.login(token);
// 返回认证信息
return createAuthInfo();
}
public void logout() {
subject.logout(); // 使用Shiro进行登出
}
public List<String> getPermissions() {
// 获取用户的权限
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.setStringPermissions(getPermissionsForUser());
return info.getStringPermissions();
}
// ...其他业务方法
}
这个示例展示了如何在Spring Boot后端使用Shiro进行用户认证和登出操作,并且如何获取用户的权限信息。在实际应用中,你需要实现具体的登录逻辑、获取权限的逻辑以及其他相关的服务方法。
评论已关闭