无法在浏览器中更改快递会话到期日期

时间:2016-03-24 09:51:35

标签: javascript node.js express cookies

我在我的项目中使用快速会话。 假设已在Web浏览器和节点js服务器之间实例化会话,并且默认的到期时间为一小时。 现在浏览器中提供了带有connect.sid名称的cookie。

我需要一个函数来扩展用户浏览器和节点js中的到期日期时间。 怎么可能呢?

我已经在服务器端通过以下方式完成了它,但它没有反映在用户浏览器中。 是否有可能将新的到期日期时间推送到用户浏览器cookie?

## cut benchmark out of data
benchmark_ser = data_df.ix[:,0]
##  get out the stocks data
stocks_df = data_df.ix[:,1:]

## create/get bounds
bds = (0,.2) # <- i want to change this line 
             #    to something that will provide 
             #    a bound for each variable like 
             #    [(0,.1),(0,.2),(0,.5),(0,.6)]

wgt_arr = sp.optimize.lsq_linear(stocks_df, benchmark_ser, bds)

1 个答案:

答案 0 :(得分:0)

在浏览器中读取/写入cookie与在node.js中操作cookie的方式略有不同。在浏览器中,cookie作为document对象的属性存储,即document.cookie,作为由分号分隔的一组键值对。

这是一个简单的函数,可以让你创建/修改一个cookie(浏览器处理覆盖现有cookie的逻辑):

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=/"    
}

所以在你的情况下,你只需要打电话:

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

或者那种效果。希望这有帮助!