shiro记住我功能的前端要怎么写
时间: 2024-04-29 16:25:56 浏览: 92
shiro记住我功能的前端主要需要实现以下几个步骤:
1. 在登录页面添加一个“记住我”的复选框,并绑定相应的事件。
2. 当用户勾选“记住我”复选框时,前端需要将用户名和密码保存到cookie中。
3. 在登录时,前端需要先检查是否存在“记住我”的cookie,如果存在,则自动填充用户名和密码,并勾选“记住我”复选框。
4. 如果用户点击了“退出登录”按钮,前端需要清除保存的用户名和密码的cookie。
下面是一个简单的示例代码:
HTML代码:
```html
<form>
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password">
<br>
<input type="checkbox" id="rememberMe" name="rememberMe">
<label for="rememberMe">记住我</label>
<br>
<button type="submit">登录</button>
<button type="button" id="logout">退出登录</button>
</form>
```
JavaScript代码:
```javascript
// 检查是否存在“记住我”的cookie,并自动填充用户名和密码
if (document.cookie.indexOf('rememberMe=1') !== -1) {
const username = localStorage.getItem('username');
const password = localStorage.getItem('password');
document.getElementById('username').value = username;
document.getElementById('password').value = password;
document.getElementById('rememberMe').checked = true;
}
// 绑定登录表单的提交事件
document.querySelector('form').addEventListener('submit', (event) => {
event.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const rememberMe = document.getElementById('rememberMe').checked;
// 记住用户名和密码
if (rememberMe) {
localStorage.setItem('username', username);
localStorage.setItem('password', password);
document.cookie = 'rememberMe=1';
} else {
localStorage.removeItem('username');
localStorage.removeItem('password');
document.cookie = 'rememberMe=0';
}
// 发送登录请求
// ...
});
// 绑定退出登录按钮的点击事件
document.getElementById('logout').addEventListener('click', () => {
localStorage.removeItem('username');
localStorage.removeItem('password');
document.cookie = 'rememberMe=0';
// 发送退出登录请求
// ...
});
```
阅读全文