// 引入jsonwebtoken库
const jwt = require('jsonwebtoken');
// 定义一个密钥,用于签名和验证JWT
const secretKey = 'your_secret_key';
// 创建一个JWT
function createToken(user) {
// payload中包含用户信息,不要包含敏感信息如密码
const payload = {
id: user.id,
username: user.username
};
// 使用jwt.sign方法创建token,参数分别为payload、密钥、过期时间和其他选项
const token = jwt.sign(payload, secretKey, { expiresIn: '1h' });
return token;
}
// 验证JWT
function verifyToken(token) {
try {
// 使用jwt.verify方法验证token,参数分别为token、密钥
const decoded = jwt.verify(token, secretKey);
return decoded;
} catch (err) {
// 如果验证失败,抛出错误
return null;
}
}
// 示例:创建一个token
const user = { id: 1, username: 'exampleUser' };
const token = createToken(user);
console.log('Generated Token:', token);
// 示例:验证一个token
const decoded = verifyToken(token);
if (decoded) {
console.log('Decoded Token:', decoded);
} else {
console.log('Invalid Token');
}
引入库:
jsonwebtoken
是一个常用的库,用于生成和验证 JWT(JSON Web Token)。定义密钥:
secretKey
是用于签名和验证 JWT 的密钥。确保这个密钥是安全的,并且不会泄露。创建 JWT:
createToken
函数接收一个用户对象作为参数,从中提取出需要包含在 JWT 中的信息(如用户 ID 和用户名),然后使用 jwt.sign
方法生成一个带有签名的 JWT。expiresIn
参数指定了 JWT 的有效期,在这里设置为 1 小时。验证 JWT:
verifyToken
函数接收一个 JWT 作为参数,使用 jwt.verify
方法进行验证。如果验证成功,则返回解码后的用户信息;如果验证失败,则返回 null
。示例代码:
希望这段代码和解释对你有帮助!
上一篇:js 判断字符串包含
下一篇:js 判断字符串为空
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站