Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js jwt

作者:傲骨依旧   发布日期:2025-03-03   浏览:94

// 引入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');
}

解释说明

  1. 引入库

    • jsonwebtoken 是一个常用的库,用于生成和验证 JWT(JSON Web Token)。
  2. 定义密钥

    • secretKey 是用于签名和验证 JWT 的密钥。确保这个密钥是安全的,并且不会泄露。
  3. 创建 JWT

    • createToken 函数接收一个用户对象作为参数,从中提取出需要包含在 JWT 中的信息(如用户 ID 和用户名),然后使用 jwt.sign 方法生成一个带有签名的 JWT。
    • expiresIn 参数指定了 JWT 的有效期,在这里设置为 1 小时。
  4. 验证 JWT

    • verifyToken 函数接收一个 JWT 作为参数,使用 jwt.verify 方法进行验证。如果验证成功,则返回解码后的用户信息;如果验证失败,则返回 null
  5. 示例代码

    • 创建了一个用户对象并生成了 JWT。
    • 然后尝试验证该 JWT 并输出结果。

希望这段代码和解释对你有帮助!

上一篇:js 判断字符串包含

下一篇:js 判断字符串为空

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站