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