Javascript jwt令牌过期意味着什么

Javascript jwt令牌过期意味着什么,javascript,node.js,jwt,Javascript,Node.js,Jwt,为了用户验证的目的,我正在实现jwt令牌。每当用户登录并将jwt令牌存储在我的数据库中时,我都会对jwt令牌进行签名。然后,每当用户想要访问他们的个人信息时,他们会向我发送他们的令牌,我会检查数据库中是否存在此类令牌,如果存在,我允许访问(如果您知道更好的用户验证方法,请推荐)。问题是,我希望我的令牌每24小时过期一次,这意味着我希望数据库中的令牌每24小时变成一个空字符串,但是我做了一些实验: const jwt = require('jsonwebtoken') var token = jw

为了用户验证的目的,我正在实现jwt令牌。每当用户登录并将jwt令牌存储在我的数据库中时,我都会对jwt令牌进行签名。然后,每当用户想要访问他们的个人信息时,他们会向我发送他们的令牌,我会检查数据库中是否存在此类令牌,如果存在,我允许访问(如果您知道更好的用户验证方法,请推荐)。问题是,我希望我的令牌每24小时过期一次,这意味着我希望数据库中的令牌每24小时变成一个空字符串,但是我做了一些实验:

const jwt = require('jsonwebtoken')
var token = jwt.sign({d:'tt'}, 'prvateKey', {expiresIn: 1000});
setTimeout(()=>{
    console.log(token)
}, 3000)
控制台上面的代码记录实际的令牌,而不是空字符串、null或类似的内容。
那么,我的代码是否有点错误,或者过期是否意味着与我的想法不同?

以字符串形式返回令牌。它不会在到期时自动变为空,它只是一个字符串。但是,令牌将变为无效。您可以使用该方法检查令牌有效性
jwt。如果令牌无效,则验证
将出错。

将令牌作为字符串返回。它不会在到期时自动变为空,它只是一个字符串。但是,令牌将变为无效。您可以使用该方法检查令牌有效性<代码>jwt。如果令牌无效,则验证将出错。

选项中设置令牌
exp
声明是一种方便的方法。以下是jwt规范对该声明的说明:

“exp”(到期时间)声明标识了到期时间,在此日期或之后不得接受JWT进行处理

var jwt = require("jsonwebtoken")
var data = {
    "data": "some data"
}
var secret = "secret"
var token = jwt.sign({ data }, secret, { expiresIn: 1 })

setTimeout(function () {
    try {
        var payload = jwt.verify(token, secret)
    } catch (error) {
        console.log(error.name)   // output: TokenExpiredError
    }
}, 1000)

jsonwebtoken
软件包文档还说明:

expiresIn
:以秒或描述时间跨度zeit/ms的字符串表示

使用
jsonwebtoken
包,过期的令牌实际上会在
verify()
函数中进行转换,在传递
令牌进行处理时,抛出一个带有
TokenExpiredError
名称的异常

var jwt = require("jsonwebtoken")
var data = {
    "data": "some data"
}
var secret = "secret"
var token = jwt.sign({ data }, secret, { expiresIn: 1 })

setTimeout(function () {
    try {
        var payload = jwt.verify(token, secret)
    } catch (error) {
        console.log(error.name)   // output: TokenExpiredError
    }
}, 1000)

expiresIn
选项便于设置令牌
exp
声明。以下是jwt规范对该声明的说明:

“exp”(到期时间)声明标识了到期时间,在此日期或之后不得接受JWT进行处理

var jwt = require("jsonwebtoken")
var data = {
    "data": "some data"
}
var secret = "secret"
var token = jwt.sign({ data }, secret, { expiresIn: 1 })

setTimeout(function () {
    try {
        var payload = jwt.verify(token, secret)
    } catch (error) {
        console.log(error.name)   // output: TokenExpiredError
    }
}, 1000)

jsonwebtoken
软件包文档还说明:

expiresIn
:以秒或描述时间跨度zeit/ms的字符串表示

使用
jsonwebtoken
包,过期的令牌实际上会在
verify()
函数中进行转换,在传递
令牌进行处理时,抛出一个带有
TokenExpiredError
名称的异常

var jwt = require("jsonwebtoken")
var data = {
    "data": "some data"
}
var secret = "secret"
var token = jwt.sign({ data }, secret, { expiresIn: 1 })

setTimeout(function () {
    try {
        var payload = jwt.verify(token, secret)
    } catch (error) {
        console.log(error.name)   // output: TokenExpiredError
    }
}, 1000)