一、從JS獲取用戶信息
在使用JWT獲取用戶信息之前,先了解從前端代碼中獲取用戶信息的方法:
const user = JSON.parse(localStorage.getItem('user'));
上述代碼通過從localStorage中獲取存儲的用戶信息,即可在前端中獲取用戶信息。
二、從JWT中獲取用戶信息
JWT(JSON Web Token)是一種標(biāo)準(zhǔn)的身份驗(yàn)證和授權(quán)機(jī)制,能夠生成一個簽名的token,來驗(yàn)證請求者的身份信息。
在使用JWT獲取用戶信息的過程中,需要對token進(jìn)行解析,然后從解析后的數(shù)據(jù)中獲取用戶信息。
const jwt = require('jsonwebtoken'); // 解析JWT token const decoded = jwt.verify(token, 'secret'); // 獲取用戶信息 const user = decoded.user;
上述代碼使用jsonwebtoken模塊對token進(jìn)行解析,然后從解析后的數(shù)據(jù)中獲取存儲的用戶信息。
三、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中獲取用戶信息”一節(jié)中的代碼。
四、JS獲取登錄用戶信息
在使用JWT獲取用戶信息之前,需要先知道如何在前端中獲取登錄用戶信息。
以下面的示例代碼為例:
// 前端發(fā)送請求,獲取登錄信息 fetch('/api/login-info') .then(response => response.json()) .then(data => { // 處理獲取到的登錄信息 const user = data.user; });
上述代碼通過發(fā)送登錄信息請求,獲取到用戶信息,并且可以在前端中直接使用該信息。
完整示例代碼
以下是完整的使用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獲取存儲的用戶信息,并且將用戶信息打印出來。