2016-09-29 4 views
0

Wie soll das Exp-Feld der Nutzlast ausgedrückt werden? das Ablaufdatum des Token drücktexp Felddefinition unklar in jwt.sign

userSchema.methods.generateJwt = function() { 
    var expiry = new Date(); 
    expiry.setDate(expiry.getDate() + 7); 

    return jwt.sign({ 
     _id: this._id, 
     email: this.email, 
     name: this.name, 
     exp: parseInt(expiry.getTime()/1000), 
    }, "MY_SECRET"); 
}; 

I "exp" annehmen:

jwt.sign({ 
     _id: this._id, 
     email: this.email, 
     name: this.name, 
     exp: //how do I set this value ?, 
    }, "MY_SECRET"); 

ist es nirgends klar Ich habe hier https://github.com/auth0/node-jsonwebtoken

Aus dem Beispielcode

in der docs erklärt , in Sekunden ab der Epoche. Korrekt?

+0

Mögliches Duplikat von [JWT (JSON Web Token) automatische Verlängerung des Verfalls] (http://stackoverflow.com/questions/26739167/jwt-json-web-token-automatic-prolongation-of-expiration) –

+0

Ja, '' 'Ablauf' '' wird in Sekunden sein –

Antwort

0

Es hängt alles von der Art der Anwendung ab und hier ist unser empfohlener Ansatz.

Ein gutes Muster besteht darin, das Token zu aktualisieren, bevor es abläuft.

Setzen Sie den Token-Ablauf auf eine Woche und aktualisieren Sie das Token jedes Mal, wenn der Benutzer die Webanwendung öffnet, und jede Stunde.

Um das Token zu aktualisieren, benötigt Ihre API einen neuen Endpunkt, der eine gültige, nicht abgelaufene JWT erhält und dieselbe signierte JWT mit dem neuen Ablauffeld zurückgibt. Dann speichert die Webanwendung das Token irgendwo.

0

Nur getestet und ja "exp" drückt das Ablaufdatum des Tokens aus, in Sekunden ab der Epoche, aber es ist nicht im Dokument angegeben.