百科狗-知识改变命运!
--

使用JWT获取用户信息

乐乐1年前 (2023-11-21)阅读数 17#技术干货
文章标签用户信息

一、从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获取用户信息之前,需要先知道如何在前端中获取登录用户信息。

使用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获取存储的用户信息,并且将用户信息打印出来。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)