千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 使用JWT獲取用戶信息

使用JWT獲取用戶信息

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-21 08:05:28 1700525128

一、從JS獲取用戶信息

在使用JWT獲取用戶信息之前,先了解從前端代碼中獲取用戶信息的方法:

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

上述代碼通過(guò)從localStorage中獲取存儲(chǔ)的用戶信息,即可在前端中獲取用戶信息。

二、從JWT中獲取用戶信息

JWT(JSON Web Token)是一種標(biāo)準(zhǔn)的身份驗(yàn)證和授權(quán)機(jī)制,能夠生成一個(gè)簽名的token,來(lái)驗(yàn)證請(qǐng)求者的身份信息。

在使用JWT獲取用戶信息的過(guò)程中,需要對(duì)token進(jìn)行解析,然后從解析后的數(shù)據(jù)中獲取用戶信息。

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

  // 獲取用戶信息
  const user = decoded.user;

上述代碼使用jsonwebtoken模塊對(duì)token進(jìn)行解析,然后從解析后的數(shù)據(jù)中獲取存儲(chǔ)的用戶信息。

三、JWT Token獲取用戶信息

在使用JWT獲取用戶信息之前,需要生成一個(gè)可用的JWT token。

以下面的示例代碼為例:

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

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

上述代碼通過(guò)jsonwebtoken模塊生成了一個(gè)包含用戶信息的token。token中的user字段存儲(chǔ)了用戶信息,secret則是用于生成簽名的密鑰,expiresIn字段則指定了token有效期。

有了token后,就可以通過(guò)解析token來(lái)獲取存儲(chǔ)的用戶信息了,具體方法可以參考上述“從JWT中獲取用戶信息”一節(jié)中的代碼。

四、JS獲取登錄用戶信息

在使用JWT獲取用戶信息之前,需要先知道如何在前端中獲取登錄用戶信息。

以下面的示例代碼為例:

  // 前端發(fā)送請(qǐng)求,獲取登錄信息
  fetch('/api/login-info')
    .then(response => response.json())
    .then(data => {
      // 處理獲取到的登錄信息
      const user = data.user;
    });

上述代碼通過(guò)發(fā)送登錄信息請(qǐng)求,獲取到用戶信息,并且可以在前端中直接使用該信息。

完整示例代碼

以下是完整的使用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);

在上述代碼中,生成了一個(gè)包含用戶信息的JWT token,然后通過(guò)解析token獲取存儲(chǔ)的用戶信息,并且將用戶信息打印出來(lái)。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
詳述input只讀屬性

在Web開(kāi)發(fā)中,表單是一種非常常見(jiàn)的元素,而input標(biāo)簽作為表單元素的一種,包含了許多屬性,其中只讀屬性(readonly)則是比較重要的一個(gè)屬性。...詳情>>

2023-11-21 10:54:40
反序列化工具的詳細(xì)介紹

一、反序列化工具有哪些?反序列化工具是指一種工具或程序,在Java或其他編程語(yǔ)言中幫助用戶將已經(jīng)被序列化的對(duì)象轉(zhuǎn)化為可用的對(duì)象。 在Java中,...詳情>>

2023-11-21 10:51:04
正則表達(dá)式匹配特殊字符

正則表達(dá)式是一種字符串匹配的工具,可以用來(lái)匹配各種各樣的字符串,包括數(shù)字、字母、特殊字符等。在日常開(kāi)發(fā)中,我們經(jīng)常需要使用正則表達(dá)式來(lái)...詳情>>

2023-11-21 10:25:52
tf.cond函數(shù)詳解

一、概述tf.cond是一個(gè)TensorFlow中的函數(shù),可以在條件成立時(shí)執(zhí)行一個(gè)函數(shù),否則執(zhí)行另一個(gè)函數(shù)。這個(gè)函數(shù)的返回值必須是Tensor類型,使得在圖...詳情>>

2023-11-21 10:22:16
esbool全方面詳解

一、esbool的概念與背景esbool(Elasticsearch Boolean Query)是Elasticsearch中用于查詢布爾值的查詢語(yǔ)句。當(dāng)我們需要對(duì)Elasticsearch中的數(shù)詳情>>

2023-11-21 10:18:40