久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      nodejs jwt是什么

      在nodejs中,jwt全稱Json web token,是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準。JWT的聲明一般被用來在身份提供者和服務(wù)提供者間傳遞被認證的用戶身份信息,以便于從資源服務(wù)器獲取資源。

      nodejs jwt是什么

      本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

      nodejs中什么是JWT

      Json web token (JWT), 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準((RFC 7519).該token被設(shè)計為緊湊且安全的,特別適用于分布式站點的單點登錄(SSO)場景。

      JWT的聲明一般被用來在身份提供者和服務(wù)提供者間傳遞被認證的用戶身份信息,以便于從資源服務(wù)器獲取資源,也可以增加一些額外的其它業(yè)務(wù)邏輯所必須的聲明信息,該token也可直接被用于認證,也可被加密。

      JWT,在HTTP通信過程中,進行身份認證。

      我們知道HTTP通信是無狀態(tài)的,因此客戶端的請求到了服務(wù)端處理完之后是無法返回給原來的客戶端。因此需要對訪問的客戶端進行識別,常用的做法是通過session機制:客戶端在服務(wù)端登陸成功之后,服務(wù)端會生成一個sessionID,返回給客戶端,客戶端將sessionID保存到cookie中,再次發(fā)起請求的時候,攜帶cookie中的sessionID到服務(wù)端,服務(wù)端會緩存該session(會話),當客戶端請求到來的時候,服務(wù)端就知道是哪個用戶的請求,并將處理的結(jié)果返回給客戶端,完成通信。

      通過上面的分析,可以知道session存在以下問題:

      1、session保存在服務(wù)端,當客戶訪問量增加時,服務(wù)端就需要存儲大量的session會話,對服務(wù)器有很大的考驗;

      2、當服務(wù)端為集群時,用戶登陸其中一臺服務(wù)器,會將session保存到該服務(wù)器的內(nèi)存中,但是當用戶的訪問到其他服務(wù)器時,會無法訪問,通常采用緩存一致性技術(shù)來保證可以共享,或者采用第三方緩存來保存session,不方便。

      Json Web Token是怎么做的?

      1、客戶端通過用戶名和密碼登錄服務(wù)器;

      2、服務(wù)端對客戶端身份進行驗證;

      3、服務(wù)端對該用戶生成Token,返回給客戶端;

      4、客戶端將Token保存到本地瀏覽器,一般保存到cookie中;

      5、客戶端發(fā)起請求,需要攜帶該Token;

      6、服務(wù)端收到請求后,首先驗證Token,之后返回數(shù)據(jù)。

      服務(wù)端不需要保存Token,只需要對Token中攜帶的信息進行驗證即可;

      無論客戶端訪問后臺的那臺服務(wù)器,只要可以通過用戶信息的驗證即可。

      Json Web Token長什么樣子呢?

      通過名字就可以看出來,是一個json。

      由三部分內(nèi)容組成:

      頭(header),一般很少改動直接使用默認的即可:

      {  ‘typ’:‘JWT’,  ‘a(chǎn)lg’:‘HS256’  }

      (playload),東西都裝在這里,默認的內(nèi)容有:

      {  ‘iss’:‘簽發(fā)者’,  ‘sub’:‘面向的用戶’,  ‘a(chǎn)ud’:‘接收方’,  ‘exp’: 過期時間,  ‘iat’: 創(chuàng)建時間,  ‘nbf’: 在什么時間之前,該Token不可用,  ‘jti’:‘Token唯一標識’  }

      根據(jù)需要用戶可以自己定義,Token中傳輸?shù)膬?nèi)容,一般會將用戶名,角色等信息放到Token中。

      (signature),前面兩部分轉(zhuǎn)為字符串后,使用base64編碼,然后進行加密得到一個字符串。

      Token = header(base64)+ playload(base64)+ signature;

      nodejs jwt是什么

      實現(xiàn)流程

      –>用戶登錄,服務(wù)器產(chǎn)生一個token(加密字符串)發(fā)送給前端,

      –>前端將token保存(想存哪就存哪)

      –>前端發(fā)起數(shù)據(jù)請求時攜帶token

      –>服務(wù)端驗證token是否合法,合法繼續(xù)操作,不合法終止操作

      token的使用場景:無狀態(tài)請求,保持用戶的登錄狀態(tài),第三方登錄(token+auth2.0)

      支持算法

      alg參數(shù)值 數(shù)字簽名或MAC算法
      HS256 使用SHA-256哈希算法的HMAC
      HS384 使用SHA-384哈希算法的HMAC
      HS512 使用SHA-512哈希算法的HMAC
      RS256 使用SHA-256哈希算法的RSASSA-PKCS1-v1_5
      RS384 使用SHA-384哈希算法的RSASSA-PKCS1-v1_5
      RS512 使用SHA-512哈希算法的RSASSA-PKCS1-v1_5
      PS256 使用SHA-256哈希算法的RSASSA-PSS(僅節(jié)點^ 6.12.0 OR> = 8.0.0)
      PS384 使用SHA-384哈希算法的RSASSA-PSS(僅節(jié)點^ 6.12.0 OR> = 8.0.0)
      PS512 使用SHA-512哈希算法的RSASSA-PSS(僅節(jié)點^ 6.12.0 OR> = 8.0.0)
      ES256 使用P-256曲線和SHA-256哈希算法的ECDSA
      ES384 使用P-384曲線和SHA-384哈希算法的ECDSA
      ES512 使用P-521曲線和SHA-512哈希算法的ECDSA
      沒有 不包含數(shù)字簽名或MAC值

      開發(fā)時使用

      安裝

      npm install jsonwebtoken --save

      使用

      const jwt = require('jsonwebtoken');//加載包 //產(chǎn)生token默認算法hs256 let token=jwt.sign({user:'123'},'123114655sad46aa');//此方法接收兩個參數(shù),第一個是要加密保存的數(shù)據(jù)(一個對象,不要放隱秘性的數(shù)據(jù),如密碼),第二個是要加密的私鑰(一個字符串,越亂越好) console.log(token);//返回一個加密字符串 // 服務(wù)器簽發(fā)的token //eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiMTIzIiwiaWF0IjoxNTcwMDc2NjU5fQ.3FT6v8zVptdWGBILD1m1CRY6sCP1I3E947krUh_E3    //客戶端請求數(shù)據(jù)的時候驗證token //客戶端傳遞過來的token let tokens=token;  jwt.verify(tokens,'123114655sad46aa',function (err,data) {     //verify接收兩個參數(shù),第一個參數(shù)是客戶端傳遞過來的token,第二個參數(shù)是加密時的私鑰;第三個參數(shù)是回調(diào)函數(shù)     console.log(err);//簽名通過返回null,簽名不通過返回err(JsonWebTokenError: invalid signature)	     console.log(data);//	通過返回解密數(shù)據(jù),失敗返回unfinished });

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號