簡體   English   中英

如何在nodejs中驗證jwt令牌/永不過期?

[英]how to verify jwt token in nodejs / never expire?

我在節點js中實現了JWT令牌。我能夠生成jwt令牌。現在我想檢查它何時到期或無效 我檢查了120ms后它將失效的文檔,但是我的令牌沒有失效。它總是對令牌進行解碼,為什么?

我生成這樣的令牌

app.get("/saveData", async (req, res) => {
  try {
    const token = await userService.create({
      userId: "abcp",
      password: "hello",
      appsAccess: ["yes", "test"]
    });

    res.send(token);
  } catch (error) {
    console.log(error);
  }
});

並像這樣驗證令牌

app.get("/verify-token", async (req, res) => {
  let tokenStatus = await userService.verifyAccessToken(
    "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InVzZXJJZCI6ImFiY3AiLCJhcHBzQWNjZXNzIjpbInllcyIsInRlc3QiXSwiX2lkIjoiNWQ3Yzk4MTYzZmQ1NGIwOGUwMjYzNjg0IiwiX192IjowfSwiaWF0IjoxNTY4NDQ2NDg2LCJpc3MiOiJqamoiLCJzdWIiOiJhYmNwIn0.1fqzYJ1p9jSIiNjbA7MwEsU4EsMmmpxF34TU1ZjonSA"
  );
  res.send(tokenStatus);
});

這是我的代碼

https://codesandbox.io/s/lively-tree-hd0fo

verifyAccessToken(token) {
    return jwt.verify(token, "jhjhhj");
  }

我想如果我生成令牌,它將在10min30min后過期..etc

您可以使用expiresIn選項來執行此操作。 根據您的代碼的示例:

const token = jwt.sign(payload, "jhjhhj", {
  algorithm: "HS256",
  issuer: "jjj",
  subject: `${user.userId}`,
  expiresIn: "10m"
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM