在我们前面学习了 JWT认证机制在Node.js中的详细阐述 之后,今天来详细学习一下token是如何生成的,secret密钥的加密解密过程是怎么样的。
安装依赖
- express:用于创建服务器
- jsonwebtoken:用于生成和验证JWT
- body-parser:用于解析请求体中的数据
npm install express jsonwebtoken body-parser
设置密钥
SECRET_KEY:用于签名和验证JWT的密钥。请确保在生产环境中使用更安全的方式存储密钥。
// 密钥(请确保在生产环境中使用更安全的方式存储密钥)
const SECRET_KEY = 'your_secret_key';
中间件
bodyParser.json():解析请求体。
// 中间件:解析请求体
app.use(bodyParser.urlencoded({
extended: false}))
authenticateJWT:验证JWT的中间件。如果验证失败,返回403状态码。
// 中间件:验证JWT
const authenticateJWT = (req, res, next) => {
const token = req.headers.authorization;
if (!token) {
return res.sendStatus(403);
}
jwt.verify(token, SECRET_KEY, (err, user) => {
if (err) {
return res.sendStatus(403);
}
console.log(user, 'user')
req.user = user;
next();
});
};
路由
/register:模拟用户注册并生成JWT。
// 路由:注册用户(示例,仅用于生成token)
app.post('/register', (req, res) => {
const {
username, password } = req.body;
// 在实际场景中,您应该验证用户并存储其信息
// 这里仅假设用户验证成功
if (username && password) {
// 通过jwt.sign() 生成JWT字符串,
// 三个参数分别是:1-用户信息对象(不要把密码进行加密),2-加密密钥,3-配置对象 expiresIn-配置token有效期
const token = jwt.sign({
username }, SECRET_KEY, {
expiresIn: '1h' });
res.json({

最低0.47元/天 解锁文章
3109

被折叠的 条评论
为什么被折叠?



