javascript
  • node.js
  • express
  • cookies
  • jwt
  • 2016-08-05 337 views 1 likes 
    1

    我正在使用JWT令牌在Node-Express JS中設置cookie作爲cookie的一部分,並使用以下代碼。即使在瀏覽器關閉後仍保留cookie

    var token = jwt.sign(parsed.data, "token_secret", {expiresIn: "43200m"}); 
    
    res.setHeader('Set-Cookie', 'token='+token+';expires='+new Date(new Date().getTime()+9940900000).toUTCString()); 
    

    在關閉或退出瀏覽器時,Cookie被刪除。 保留cookie的最佳方法是什麼?它是否將令牌存儲在瀏覽器的localStorage中並將其附加到每個http請求的標頭中?或者是否有任何其他設置cookie的方式,以便在瀏覽器關閉後cookie不會被刪除。

    +0

    餅乾有=無關,與瀏覽器關閉,它只是取決於到期時間。所以你一定不能把它設置正確。 – abhirathore2006

    +0

    Cookie的到期時間爲2016-11-13T05:51:27.016Z(從瀏覽器複製),令牌大約一個月。 –

    +1

    **我無法重現問題**。由於你沒有提供正確的[MCVE],我不得不採取一些自由,但是當我在Firefox中運行[我的測試用例](http://hastebin.com/lelubecixa.js)時,完全退出Firefox,然後然後再次加載它:Cookie從Firefox發送到服務器。無論問題是什麼,它似乎都不是由問題中的代碼引起的。 – Quentin

    回答

    -1

    有不同類型的可用餅乾,要知道參考哪個是會話cookieHTTP Cookie

    一個,這裏是從維基定義,

    會話cookie,也被稱爲中 - 存儲器cookie或瞬態cookie,僅在用戶瀏覽網站時存在於臨時存儲器中。[13]當用戶關閉瀏覽器時,Web瀏覽器通常會刪除會話cookie。[14]與其他cookie不同,會話cookie沒有爲其分配過期日期,這是瀏覽器知道如何將它們視爲會話cookie。

    因此,如果您不希望Cookie在瀏覽器關閉後過期,請使用持久Cookie

    這樣做參考, Persistent cookies in node js express

    希望幫助!

    +0

    你已經引用了很多關於會話cookie的內容,OP不想使用哪些cookies,哪些沒有專家日期......當問題中的代碼顯示嘗試設置失效日期時。然後,當你終於開始解釋做什麼...你放棄,只是使它成爲另一個問題的鏈接(這應該是一個重複的投票結果) – Quentin

    +0

    很抱歉,如果你不明白答案的目的,答案清楚地解釋了用戶發佈問題的原因(一般情況下),所以我不必是一個NodeJS開發人員(不是)來解釋如何使用cookie來解決用戶解決方案 –

    +0

    有關cookie如何工作的一般說明不能解釋「用戶發佈問題的原因」。如果問題中的代碼沒有設置失效日期,那麼這樣的解釋可能會回答它(儘管它不會很好的回答,因爲它沒有明確說明具體問題),但是,由於代碼問題確實*設置了失效日期,我沒有看到它根本回答了它。 – Quentin

    0

    也許這

    document.cookie = cName + "=" + cValue + "; expires=" + expDate + ";path=/"; 
    

     相關問題

    • 暫無相關問題^_^