springboot+thymeleaf记住密码
时间: 2023-08-18 18:04:53 浏览: 189
springboot + thymeleaf配置
在Spring Boot中使用Thymeleaf实现记住密码功能可以通过以下步骤完成:
1. 在登录页面的HTML表单中添加一个复选框,用于用户选择是否记住密码。例如:
```html
<input type="checkbox" name="rememberMe" value="true">记住密码
```
2. 在后端的登录控制器中,获取rememberMe参数的值,并将其传递给登录服务方法。例如:
```java
@PostMapping("/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
@RequestParam(value = "rememberMe", required = false) boolean rememberMe) {
// 调用登录服务方法,传递username、password和rememberMe参数
...
}
```
3. 在登录服务方法中,根据rememberMe参数的值,设置cookie的过期时间。如果rememberMe为true,则设置较长的过期时间,否则使用默认的会话(session)过期时间。例如:
```java
public void login(String username, String password, boolean rememberMe) {
// 验证用户名和密码
...
// 登录成功后,设置cookie的过期时间
if (rememberMe) {
int maxAge = 7 * 24 * 60 * 60; // 7天
CookieUtils.setCookie(response, "username", username, maxAge);
CookieUtils.setCookie(response, "password", password, maxAge);
}
}
```
4. 在页面加载时,检查是否存在记住密码的cookie,并将其值填充到登录表单中。例如:
```javascript
$(document).ready(function() {
var rememberMe = getCookie("rememberMe");
if (rememberMe === "true") {
var username = getCookie("username");
var password = getCookie("password");
$("#username").val(username);
$("#password").val(password);
$("#rememberMe").prop("checked", true);
}
});
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length === 2) {
return parts.pop().split(";").shift();
}
return "";
}
```
这样,当用户选择记住密码并成功登录后,下次访问登录页面时,用户名和密码会自动填充为上次登录时记住的值。记住密码的cookie会在一定时间后过期,或者用户主动退出登录时被删除。
阅读全文