generated from Java-2025Fall/final-vibevault-template
更新 src/main/java/com/vibevault/controller/AuthController.java
This commit is contained in:
parent
16896dee2c
commit
80bdeefa76
@ -36,9 +36,43 @@ public class AuthController {
|
||||
this.jwtService = jwtService;
|
||||
}
|
||||
|
||||
// TODO: 实现 POST /api/auth/register (状态码 201)
|
||||
// POST /api/auth/register - 用户注册 状态码 201
|
||||
@PostMapping("/register")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
public RegisterResponse register(@RequestBody RegisterRequest request) {
|
||||
// 检查用户名是否已存在
|
||||
if (userRepository.existsByUsername(request.username())) {
|
||||
throw new ResponseStatusException(HttpStatus.CONFLICT, "Username already exists");
|
||||
}
|
||||
|
||||
// TODO: 实现 POST /api/auth/login
|
||||
// 创建用户并加密密码
|
||||
User user = new User();
|
||||
user.setUsername(request.username());
|
||||
user.setPassword(passwordEncoder.encode(request.password()));
|
||||
// 默认角色设置为普通用户(根据你的User类调整)
|
||||
user.setRole("ROLE_USER");
|
||||
userRepository.save(user);
|
||||
|
||||
return new RegisterResponse("User registered successfully", request.username());
|
||||
}
|
||||
|
||||
// POST /api/auth/login - 用户登录
|
||||
@PostMapping("/login")
|
||||
public LoginResponse login(@RequestBody LoginRequest request) {
|
||||
// 查询用户
|
||||
User user = userRepository.findByUsername(request.username())
|
||||
.orElseThrow(() -> new ResponseStatusException(HttpStatus.UNAUTHORIZED, "Invalid username or password"));
|
||||
|
||||
// 验证密码
|
||||
if (!passwordEncoder.matches(request.password(), user.getPassword())) {
|
||||
throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "Invalid username or password");
|
||||
}
|
||||
|
||||
// 生成JWT token
|
||||
String token = jwtService.generateToken(user.getUsername());
|
||||
|
||||
return new LoginResponse(token, user.getUsername());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user