千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 使用JWT获取用户信息

使用JWT获取用户信息

来源:千锋教育
发布人:xqq
时间: 2023-11-21 08:05:28 1700525128

一、从JS获取用户信息

在使用JWT获取用户信息之前,先了解从前端代码中获取用户信息的方法:

  const user = JSON.parse(localStorage.getItem('user'));

上述代码通过从localStorage中获取存储的用户信息,即可在前端中获取用户信息。

二、从JWT中获取用户信息

JWT(JSON Web Token)是一种标准的身份验证和授权机制,能够生成一个签名的token,来验证请求者的身份信息。

在使用JWT获取用户信息的过程中,需要对token进行解析,然后从解析后的数据中获取用户信息。

  const jwt = require('jsonwebtoken');
  
  // 解析JWT token
  const decoded = jwt.verify(token, 'secret');

  // 获取用户信息
  const user = decoded.user;

上述代码使用jsonwebtoken模块对token进行解析,然后从解析后的数据中获取存储的用户信息。

三、JWT Token获取用户信息

在使用JWT获取用户信息之前,需要生成一个可用的JWT token。

以下面的示例代码为例:

  const jwt = require('jsonwebtoken');
  
  const user = {
    id: '123456',
    username: 'example'
  };

  // 生成JWT token
  const token = jwt.sign({ user }, 'secret', { expiresIn: '1h' });

上述代码通过jsonwebtoken模块生成了一个包含用户信息的token。token中的user字段存储了用户信息,secret则是用于生成签名的密钥,expiresIn字段则指定了token有效期。

有了token后,就可以通过解析token来获取存储的用户信息了,具体方法可以参考上述“从JWT中获取用户信息”一节中的代码。

四、JS获取登录用户信息

在使用JWT获取用户信息之前,需要先知道如何在前端中获取登录用户信息。

以下面的示例代码为例:

  // 前端发送请求,获取登录信息
  fetch('/api/login-info')
    .then(response => response.json())
    .then(data => {
      // 处理获取到的登录信息
      const user = data.user;
    });

上述代码通过发送登录信息请求,获取到用户信息,并且可以在前端中直接使用该信息。

完整示例代码

以下是完整的使用jsonwebtoken模块获取用户信息的示例代码:

  const jwt = require('jsonwebtoken');

  // 生成JWT Token
  const user = {
    id: '123456',
    username: 'example'
  };
  const token = jwt.sign({ user }, 'secret', { expiresIn: '1h' });

  // 解析JWT Token
  const decoded = jwt.verify(token, 'secret');
  const userFromToken = decoded.user;

  console.log('User from JS:', user);
  console.log('User from Token:', userFromToken);

在上述代码中,生成了一个包含用户信息的JWT token,然后通过解析token获取存储的用户信息,并且将用户信息打印出来。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT