2016-03-24 13 views
0

Ich verwende Express-Sitzung in meinem Projekt. Angenommen, eine Sitzung wurde zwischen dem Webbrowser und dem Knoten-js-Server mit einer Standardverfallszeit von einer Stunde instanziiert. Ein Cookie mit dem Namen connect.sid ist jetzt im Browser verfügbar.Ablaufdatum der Express-Sitzung im Browser konnte nicht geändert werden

Und ich brauche eine Funktion, um das Verfallsdatum in beiden Benutzer-Browser und Knoten js zu erweitern. Wie könnte es getan werden?

Ich habe es in Server-Seite mit folgenden Möglichkeiten getan, aber es spiegelt sich nicht im Benutzer-Browser. Gibt es eine Möglichkeit, ein neues Verfallsdatum in den Cookie des Nutzerbrowsers zu verschieben?

var hour = 3600000; 
req.session.cookie.expires = new Date(Date.now() + hour); 
req.session.cookie.maxAge = hour; 

Antwort

0

Das Lesen/Schreiben von Cookies im Browser unterscheidet sich geringfügig von der Vorgehensweise bei der Bearbeitung von Cookies in node.js. Im Browser werden Cookies als eine Eigenschaft des Objekts document, nämlich document.cookie, als eine Kette von Schlüsselwertpaaren gespeichert, die durch Semikolons getrennt sind.

Hier ist eine einfache Funktion, die Sie ein Cookie erstellen/ändern können (der Browser übernimmt die Logik, die vorhandene Cookies überschrieben):

function createCookie (name, value, days) { 
    var expires = "" 
    var date = new Date() 
    if (days) { 
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)) 
    expires = "; expires=" + date.toGMTString() 
    } 
    document.cookie = name + "=" + value + expires + "; path=/"  
} 

Also in Ihrem Fall würden Sie rufen Sie einfach an:

var hour = 3600000; 
createCookie('expires', new Date(Date.now() + hour), 1); // I've arbitrarily chosen one day as the expiry here 
createCookie('maxAge', hour, 1); // here too 

Oder etwas in diesem Sinne. Hoffe das hilft!

Verwandte Themen