2016-06-04 15 views
58

Ich benutze NodeJs mit JsonWebtoken Module.ValidationError: "expiresInMinutes" ist nicht erlaubt NodeJs JsonWebToken

ich diesen Fehler bin vor, wenn Zeichen Methode von json Web-Token

ValidationError: "expiresInMinutes" is not allowed

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 
     }); 

} 

Antwort

114

Ok ich, dass

von https://www.npmjs.com/package/jsonwebtoken

gefunden Aufruf Sie haben expiresIn nennen statt expiresInMinutes.

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

Hier ist der Wert von expiresIn anstatt Minuten in Sekunden gemessen, so muss der Wert richtig setzen in werden.

+1

var token = jwt.sign (Benutzer, req.app.get ('jwtTokenSecret') { expiresIn: 60 * 24; // Ablauf von 24 Stunden }); –

+3

@MahmoudElgohary aus dem doc: "expiresIn: in Sekunden ausgedrückt" –

+5

Bitte nicht, was @MahmoudElgohary nur vorgeschlagen. Das würde in 24 MINUTEN, nicht Stunden, ablaufen. Verwenden Sie stundenlang '{expiresIn: 'xh'}' wo 'x' eine beliebige Zahl ist. Beispiel: '{expiresIn: '24h'}' –

16

expiresInMinutes veraltet wurde, sollten Sie expiresIn: '1440m' zum Beispiel verwenden

5

expiresInMinutes ist veraltet, expiresIn stattdessen verwenden. Vom docs:

expiresIn : expressed in seconds or a string describing a time span rauchg/ms . Eg: 60, "2 days", "10h", "7d"

Verwandte Themen