在注册时创建JWT令牌,可以通过以下步骤实现:
const jwt = require('jsonwebtoken');
// 生成JWT令牌的函数
function generateJWTToken(userId) {
const payload = {
userId: userId,
// 可以添加其他自定义的信息
};
const secretKey = 'your-secret-key'; // 用于签名的密钥,需保密
const options = {
expiresIn: '1h', // 令牌的有效期
};
const token = jwt.sign(payload, secretKey, options);
return token;
}
// 在注册时调用生成JWT令牌的函数
const userId = '123456'; // 假设用户的唯一标识为123456
const jwtToken = generateJWTToken(userId);
console.log(jwtToken);
const jwt = require('jsonwebtoken');
// 解析和验证JWT令牌的中间件
function verifyJWTToken(req, res, next) {
const token = req.headers.authorization.split(' ')[1]; // 从请求头中获取JWT令牌
const secretKey = 'your-secret-key'; // 用于签名的密钥,需保密
jwt.verify(token, secretKey, (err, decoded) => {
if (err) {
return res.status(401).json({ message: 'Invalid token' });
}
req.userId = decoded.userId; // 将解析出的用户ID存储在请求对象中,供后续的请求处理函数使用
next();
});
}
// 在需要验证JWT令牌的请求处理函数中使用中间件
app.get('/protected-route', verifyJWTToken, (req, res) => {
// 可以在这里使用req.userId进行后续的处理
res.json({ message: 'Access granted' });
});
通过以上步骤,可以在注册时创建JWT令牌,并在后续的请求中进行验证,实现身份认证和授权功能。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云