对于前端,可使用 js-cookie
库来保存和访问jwt令牌cookie。
安装js-cookie:
npm install js-cookie --save
在登录成功后将jwt令牌保存到cookie中:
import Cookies from 'js-cookie';
//登录成功后,将jwt令牌保存到cookie中
Cookies.set('jwtToken', 'your_jwt_token_here');
在浏览器中,可以像访问普通cookie一样访问jwt令牌cookie:
import Cookies from 'js-cookie';
// 从cookie中获取jwt令牌
const jwtToken = Cookies.get('jwtToken');
对于后端,需要在响应头中设置cookie,让浏览器保存jwt令牌。
示例代码(使用Node.js和Express框架):
const express = require('express');
const app = express();
app.post('/login', (req, res) => {
// 登录逻辑,生成jwt令牌并返回给用户
// 使用cookie保存jwt令牌
res.cookie('jwtToken', 'your_jwt_token_here', { maxAge: 86400000, httpOnly: true });
res.send('Login successful!');
});
app.get('/protected', (req, res) => {
// 鉴权逻辑,判断jwt令牌是否正确
const jwtToken = req.cookies.jwtToken;
if (jwtToken === 'your_jwt_token_here') {
// 鉴权成功,返回受保护的资源
res.send('Protected resource');
} else {
// 鉴权失败
res.sendStatus(401);
}
});
app.listen(3000, () => console.log('Server running on port 3000'));