ValidationError:不允许使用“expiresInMinutes”NodeJs JsonWebToken

时间:2016-06-04 11:11:06

标签: node.js jwt

我正在使用NodeJs和JsonWebtoken Module。

我在调用json web token的签名方法时遇到此错误

  

ValidationError:不允许使用“expiresInMinutes”

var jwt = require('jsonwebtoken');

exports.authenticate = function(req, res, next) {
    var user = {"Name":"Abdul"} //static data for test purpose.

    var token = jwt.sign(user, req.app.get('jwtTokenSecret'), {
          expiresInMinutes: 1440 // expires in 24 hours
        });

        // return the information including token as JSON
        res.json({
          success: true,
          message: 'Enjoy your token!',
          token: token
        });

}

3 个答案:

答案 0 :(得分:125)

好的,我发现是https://www.npmjs.com/package/jsonwebtoken

您必须致电 expiresIn 而不是 expiresInMinutes

 var token = jwt.sign(user, req.app.get('jwtTokenSecret'), {
           expiresIn : 60*60*24
         });

此处expiresIn的值以秒为单位而不是以分钟为单位,因此必须正确放入该值。

答案 1 :(得分:19)

$(document).ready(function() { $('#saved_billing_addresses').on("change", function() { var opt = this.options[this.selectedIndex]; if (opt) { opt = $(opt); $("#bill_address").val(opt.attr('data-address')); $("#bill_city").val(opt.attr('data-city')); $("#bill_zipcode").val(opt.attr('data-zipcode')); $("#bill_country").val(opt.attr('data-country')); } }) }); 已被弃用,您应该使用expiresInMinutes作为实例

答案 2 :(得分:7)

不推荐使用

expiresInMinutes,而是使用expiresIn。来自docs

  

expiresIn:以秒表示或描述时间跨度rauchg/ms的字符串。例如:60,“2天”,“10h”,“7d”