Nodejs-token

token基礎

  • 一個JWT(Java Web Token)實際上就是一個字符串,它由頭部、載荷與簽名 三部分組成
  • 編碼之后的JWT是這樣的一串字符
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ 
  • .分為三段,通過解碼可以得到
// 1. Headers頭部
// 包括類別(typ)、加密算法(alg)
{
 "alg": "HS256",
 "typ": "JWT"
}
// 2. Claims載荷
// 包括需要傳遞的用戶信息
{
 "sub": "1234567890",
 "name": "John Doe",
 "admin": true
}
// 3. Signature簽名
// 根據(jù)alg算法與私有秘鑰進行加密得到的簽名字串
// 這一段是最重要的敏感信息,只能在服務端解密
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), SECREATE_KEY)

核心代碼

const jwt = require('jsonwebtoken');
const secret = 'qwert';   //自定義
app.set('superSecret', secret);
 //生成token
const token = jwt.sign(user, app.get('superSecret'));
//解碼token
jwt.verify(token, app.get('superSecret'), function (err, decoded){
    //decoded 是得到的用戶信息
}

原理

  • 安裝nodejs的模塊jsonwebtoken,設置一個字符串當作密鑰
  • 如果登錄成功,服務器就根據(jù)用戶名和密鑰生成一個token,并返回token給客戶端
  • 如果想得到個人信息,就可以發(fā)送這個token,經過verify驗證成功,得到信息

總結

  • 可以把生成的token存放在cookie中,相當于把session Id存放在cookie

demo地址

參考文章推薦:
Authenticate a Node.js API with JSON Web Tokens
JWT 在前后端分離中的應用與實踐

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.背景介紹 由于HTTP是一種無狀態(tài)協(xié)議,服務器沒有辦法單單從網絡連接上面知道訪問者的身份,為了解決這個問題,就...
    黑白電影_閱讀 10,394評論 0 10
  • 轉載本文需注明出處:微信公眾號EAWorld,違者必究。 本文目錄: 一、單體應用 VS 微服務 二、微服務常見安...
    72a1f772fe47閱讀 8,746評論 3 25
  • 概述 JSON Web令牌(JWT)是一個緊湊的采用URL安全表示方法的聲明,用于在兩方之間傳輸。JWT的聲明被編...
    御淺永夜閱讀 5,522評論 0 0
  • why JWT 現(xiàn)在,前后端分離和 RESTful API 越來越火熱,當后臺漸漸開始只負責為客戶端提供 API ...
    jaychenIsUsed閱讀 5,237評論 1 8
  • 講師訓第2周: 這周基本節(jié)奏是緊湊、緊張的過了~在所有導師嚴格的監(jiān)督下,我們一路過關斬將來! 這周學會了思維導圖和...
    鐘月娥閱讀 170評論 0 0

友情鏈接更多精彩內容