天天看點

在Node中使用JWT(JSON Web Token) 實作使用者認證

安裝npm包:

npm i jsonwebtoken

使用

jsonwebtoken

包,可以建立 authentication token, 并驗證token是否仍然有效,是否過期。

JWT 分3個部分: Header, Payload, Signature

測試代碼:

const jwt = require("jsonwebtoken");
const myFunc = async () => {
  const token = await jwt.sign({ _id: 1234 }, "mysecret");
  console.log(token);
//eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOjEyMzQsImlhdCI6MTYzMDQxNTM3MH0.Y0psPcp-HqAg4WFEbdskvpWFJrAgqtKaW7_wGOLUmE4
// 以上的token,在https://www.base64decode.org/ 中decode,可以看到如下字元串:
// {"alg":"HS256","typ":"JWT"}{"_id":1234,"iat":1630415370}
  const decode = await jwt.verify(token, "mysecret");
  console.log(decode);
  //{ _id: 1234, iat: 1630415370 }
};
myFunc();
           

JWT 與使用者帳号綁定,一個帳号有一個JWT數組。

繼續閱讀