好的,以下是一个典型的控制器登录接口:
public class LoginController {
@PostMapping("/login")
public ResponseEntity<User> login(@RequestBody LoginRequest request) {
String username = request.getUsername();
String password = request.getPassword();
// 验证用户名和密码是否正确
if (validate(username, password)) {
// 生成 Token
String token = generateToken(username);
// 返回登录成功的响应,并将 Token 作为响应体中的一部分返回
return ResponseEntity.ok(new User(username, token));
} else {
// 用户名或密码不正确,返回登录失败的响应
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
}
}
}
该接口使用 @PostMapping
注解表明它是一个 HTTP POST 请求,用于处理登录请求。它接受一个带有用户名和密码的请求体,使用 @RequestBody
注解将其映射到一个 LoginRequest
对象中。然后,控制器会验证用户名和密码是否正确,并根据验证结果返回相应的响应。如果验证成功,则会生成一个 Token,并将 Token 和用户名作为一个 User
对象返回;如果验证失败,则返回 401 Unauthorized 错误。