前端使用token实现单点登录
时间: 2023-10-19 16:07:36 浏览: 104
前端使用 token 实现单点登录的基本思路是,当用户登录成功后,后端会生成一个 token 并返回给前端。前端将这个 token 存储在客户端,比如通过 Cookie 或者 LocalStorage。
然后,当用户访问其他需要进行身份验证的页面时,前端会将存储的 token 发送给后端进行验证。后端会校验 token 的合法性,如果验证通过,则表示用户已经登录过,可以继续访问。
以下是一个简单的示例代码,使用 JWT(JSON Web Token)来实现 token 的生成和验证:
```javascript
// 登录成功后,后端生成 token 并返回给前端
const token = jwt.sign({ userId: '123' }, 'secretKey');
// 将 token 存储在客户端
localStorage.setItem('token', token);
// 用户访问其他需要验证的页面时,将 token 发送给后端进行验证
const storedToken = localStorage.getItem('token');
// 发送 token 到后端进行验证
fetch('/api/verify', {
headers: {
Authorization: `Bearer ${storedToken}`
}
})
.then(response => {
if (response.ok) {
// 验证通过,继续访问
} else {
// 验证失败,跳转到登录页
window.location.href = '/login';
}
});
```
在后端,你需要验证传递过来的 token 的合法性,并且解析出其中的数据。如果验证成功,则表示用户已经登录过,可以继续处理请求;如果验证失败,则需要返回错误信息或者跳转到登录页。
需要注意的是,为了保证安全性,token 的生成和验证过程需要进行一定的加密和防篡改措施,比如使用 HTTPS 协议传输、设置合适的过期时间等。此外,为了防止 token 被盗用,还可以考虑使用刷新 token 的机制。
阅读全文