您的位置:

使用JWT获取用户信息

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