使用JSON Web Token生成令牌时遇TypeError: option expires is invalid错误求助
问题排查与解决
你的错误根源是jwt.sign的参数传递语法错误,和expiresIn的取值无关。
看你提供的代码:
jwt.sign({ id: this._id }, process.env.JWT_SECRET), { expiresIn: '2 days', }
这里你在jwt.sign(...)后面多写了一个右括号),导致{ expiresIn: '2 days' }这个配置对象没有被作为第三个参数传入jwt.sign函数,反而变成了一个独立的无效表达式,JWT库因此无法正确识别配置选项,抛出option expires is invalid错误。
修正后的代码
把多余的右括号删掉,让配置对象作为jwt.sign的第三个参数:
jwt.sign( { id: this._id }, process.env.JWT_SECRET, { expiresIn: '2 days', } )
这样无论你用'2 days'、'1h'还是数字形式的秒数(比如234234),都能正常生效。
内容的提问来源于stack exchange,提问作者TheKuder
相关产品推荐
相关产品推荐

