javascript
  • node.js
  • express
  • cookies
  • jwt
  • 2016-08-05 339 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=/"; 
    

     相关问题

    • 暂无相关问题^_^