2017-07-20 2 views
1

Ich möchte nicht, dass mein Token abläuft und für immer gültig bleibt.Wie setze ich die Verfallszeit von jwt-Token in nodejs auf Maximum?

var token = jwt.sign({email_id:'[email protected]'}, "Stack", { 

         expiresIn: '24h' // expires in 24 hours 

         }); 

In obigen Code i für 24 Stunden gegeben haben .. Ich will nicht mein Token verfallen zu bekommen. Was soll dafür getan werden?

+0

Das scheint eine schlechte Idee. Sie können jedoch versuchen, diesen Parameter zu deaktivieren (überprüfen Sie die API-Dokumentation für Ihre JWT-Bibliothek). Wenn das nicht funktioniert, stellen Sie es auf eine Million Stunden ein. – Thilo

+0

Sie sollten Stunden hinzufügen, die Sie festlegen möchten. Best Practice wird auf 8760 Stunden eingestellt, also 1 Jahr – Ved

+0

, also ist die Einstellung der Stunde obligatorisch? – Jagadeesh

Antwort

2

Der exp Anspruch eines JWT ist optional. Wenn ein Token nicht vorhanden ist, wird davon ausgegangen, dass es nicht abläuft

Laut Dokumentation von https://www.npmjs.com/package/jsonwebtoken hat das Feld expiresIn auch keinen Standardwert, also lassen Sie es einfach weg.

Es gibt keine Standardwerte für expiresIn, notBefore, Publikum, Betreff, Aussteller. Diese Ansprüche können auch in der Nutzlast direkt mit exp, nbf, aud, sub und iss bereitgestellt werden, aber Sie können nicht an beiden Stellen einschließen.

var token = jwt.sign({email_id:'[email protected]'}, "Stack", {}); 
2

Um expirey Zeit in Tagen festgelegt: versuchen, diese

var token = jwt.sign({email_id:'[email protected]'}, "Stack", { 

      expiresIn: '365d' // expires in 365 days 

     }); 

"expiresIn" sollte eine Anzahl von Sekunden oder String sein, der eine Zeitspanne zB repesents: "1d", "20h",

+0

irgendeine Option für die Einrichtung in Jahren? – Jagadeesh

+0

Ich denke nein. Sie können es in Tagen einstellen. 365d = 1 Jahr – Ved

+0

wenn ich für 10 Jahre gebe durch die Berechnung der Anzahl der Tage als 3650d wird es funktionieren? – Jagadeesh

Verwandte Themen