Java 开发一个 web 包含登录 记住密码(二)
4.开发记住密码功能:
@Controller
public class LoginController {
@Autowired
private UserService userService;
@GetMapping("/login")
public String showLoginPage() {
return "login";
}
@PostMapping("/login")
public ResponseEntity<String> processLogin(@RequestParam String username, @RequestParam String password,
@RequestParam(required = false) boolean rememberMe, HttpServletResponse response) {
User user = userService.authenticate(username, password);
if (user != null) {
SecurityContextHolder.getContext().setAuthentication(
new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()));
if (rememberMe) {
userService.setRememberMe(username, password);
rememberMeServices.loginSuccess(request, response, authentication);
} else {
userService.clearRememberMe(username);
}
return ResponseEntity.ok("Login success");
} else {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Login failed");
}
}
}