Javascript JWT jsonwebtoken dosen';t在node.js中过期

Javascript JWT jsonwebtoken dosen';t在node.js中过期,javascript,node.js,express,jwt,Javascript,Node.js,Express,Jwt,我正在使用“jsonwebtoken”:“^5.4.0”,我的令牌无法过期 我使用以下命令创建令牌: var token = jwt.sign(user, app.get('superSecret'), { expiresInSeconds: 1 }); 我的代币是 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfaWQiOiI1NjFhODE5MjFhZGJmYWI2MzNlZWU4ZjciLCJ1c2VybmFtZSI6ImJhcm5vIiwicG

我正在使用
“jsonwebtoken”:“^5.4.0”
,我的令牌无法过期

我使用以下命令创建令牌:

var token = jwt.sign(user, app.get('superSecret'), {
    expiresInSeconds: 1
});
我的代币是

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfaWQiOiI1NjFhODE5MjFhZGJmYWI2MzNlZWU4ZjciLCJ1c2VybmFtZSI6ImJhcm5vIiwicGFzc3dvcmQiOiIkMmEkMTAkcnh6SHY0dFFhbkxwVDNQOEVJSzNBTzVhLjcwNUJZdmxIOVhXOHlSVmpUMi9hNEdmTFd4YU8iLCJfX3YiOjAsImNyZWF0ZWRfYXQiOiIyMDE1LTEwLTExVDE1OjM0OjQyLjg3MFoifQ.ooELWBRlxtYwFTmJDFNOLiR6-2uR_-wjjXwPnS0c5Lk
我的钱包里有这张支票

jwt.verify(token, app.get('superSecret'), function (err, decoded) {
    if (err) {
        return res.json({success: false, message: 'Failed to authenticate token.'});
    } else {
        console.dir(decoded);            
        // if everything is good, save to request for use in other routes
        req.decoded = decoded;
        return res.json({success: true, token: decoded});
        next();
    }
});
和邮递员一起,我做了一个像

Post http://localhost:3000/users
with
x-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfaWQiOiI1NjFhODE5MjFhZGJmYWI2MzNlZWU4ZjciLCJ1c2VybmFtZSI6ImJhcm5vIiwicGFzc3dvcmQiOiIkMmEkMTAkcnh6SHY0dFFhbkxwVDNQOEVJSzNBTzVhLjcwNUJZdmxIOVhXOHlSVmpUMi9hNEdmTFd4YU8iLCJfX3YiOjAsImNyZWF0ZWRfYXQiOiIyMDE1LTEwLTExVDE1OjM0OjQyLjg3MFoifQ.ooELWBRlxtYwFTmJDFNOLiR6-2uR_-wjjXwPnS0c5Lk
我的代币永远有效

console.dir(decoded)
{
  "success": true,
  "token": {
    "_id": "561a81921adbfab633eee8f7",
    "username": "myuser",
  }
}

为什么我的代码总是有效的?如何强制使此代码无效,例如注销?

库可能不会因时间本身而使令牌无效。在您的情况下,签名可能是正确的,因此您得到了解码的变量。也许你需要自己检查一下

这里是一个非常有用的工具,用于检查您实际生成的JWT令牌。
库可能不会因时间本身而使令牌无效。在您的情况下,签名可能是正确的,因此您得到了解码的变量。也许你需要自己检查一下

这里是一个非常有用的工具,用于检查您实际生成的JWT令牌。

使用jwt.sign()时,提供的第一个参数必须是对象。尝试按如下所示替换代码

var token = jwt.sign({user: user}, app.get('superSecret'), {
    expiresIn: 1
});
另外,使用expiresIn而不是expiresInSeconds,因为它已被弃用。

使用jwt.sign()时,提供的第一个参数必须是对象。尝试按如下所示替换代码

var token = jwt.sign({user: user}, app.get('superSecret'), {
    expiresIn: 1
});

另外,使用expiresIn而不是expiresInSeconds,因为它已被弃用。

使用jwt.io上的调试器查看有效负载,通过使用jwt.io上的调试器将有效负载上的过期时间更改为当前timelooking,您的令牌不包含“exp”字段Force invalid,您的令牌不包含“exp”字段,通过将到期时间更改为当前时间强制无效