代码之家  ›  专栏  ›  技术社区  ›  user944513

如何验证nodejs/never expire中的jwt令牌?

  •  0
  • user944513  · 技术社区  · 7 年前

    我实现了 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");
      }
    

    如果我生成令牌,它将在 10min 或 30min ..等

    1 回复  |  直到 7 年前
        1
  •  1
  •   Cuong Le Ngoc    7 年前

    你可以使用 expiresIn 选择这样做。基于代码的示例:

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