Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用express中的cookie会话保持登录选项_Node.js_Express_Cookie Session - Fatal编程技术网

Node.js 使用express中的cookie会话保持登录选项

Node.js 使用express中的cookie会话保持登录选项,node.js,express,cookie-session,Node.js,Express,Cookie Session,我想有一个“停留登录”选项,比如Gmail提供的选项。 这样,用户就可以决定在先前关闭新的浏览器会话后,在打开该会话时是否保持会话打开状态 查看我看到的github问题 我想知道是否有任何方法可以通过cookie会话组件实现“保持登录”功能 在我看来,这似乎是正在下载的组件的基本功能。如果您使用的是ExpressJS,会话模块有一个选项 或者,req.session.cookie.maxAge将返回剩余时间 毫秒,我们也可以重新分配一个新值来调整 .财产适当到期。以下基本上是 等价物 这是否提

我想有一个“停留登录”选项,比如Gmail提供的选项。 这样,用户就可以决定在先前关闭新的浏览器会话后,在打开该会话时是否保持会话打开状态

查看我看到的github问题

我想知道是否有任何方法可以通过
cookie会话
组件实现“保持登录”功能


在我看来,这似乎是正在下载的组件的基本功能。

如果您使用的是ExpressJS,会话模块有一个选项

或者,req.session.cookie.maxAge将返回剩余时间 毫秒,我们也可以重新分配一个新值来调整 .财产适当到期。以下基本上是 等价物


这是否提供了您想要的:?@SlashmanX不太可能
req.body
在middelware中似乎不可访问,因此我如何根据
保持登录
复选框进行设置?这可能不是最好的方法,但您是否可以获取cookie并更改每个请求的过期时间(如果他们已启用保持登录)?否,这只是从文档中获取的,它没有提供问题的解决方案。此外,正如我所说的,
req.body
似乎在中间件中无法访问。请决定:要么它来自文档,然后它表明req可用,因此它是一个解决方案,要么它不是来自文档。我现在无法测试它,但在任何情况下,设置
maxAge
在任何时候都不会强制在浏览器会话结束时删除cookie。嗯,也许是这样。我又增加了两行设置过期时间。当然,对于选中复选框的人,您需要第一个复选框将其设置为1天(或者您可以添加任何您想要的内容),或者对于希望其在会话结束时过期的人,您需要0。我使用的不是Express会话,而是cookie会话。主要原因如下:
警告默认的服务器端会话存储MemoryStore不是专门为生产环境设计的。
我使用的是Windows,另外一个服务器端存储听起来并不容易。太复杂了,不可能有更简单的东西…如果您没有任何其他会话存储(如redis),您将以任何方式使用内存存储,在任何其他会话模块中(或没有模块)。如果你不打算做大事,你可以毫无问题地使用memorystore。你是说它也不是为生产环境设计的吗?是的。这取决于项目和用户的大小。例如,如果您正在构建最多可容纳50人的应用程序,则可以使用express会话或cookie会话。但是如果你的目标是成千上万的人,你在生产上就没有运气,你需要redis等等。
// This allows you to set req.session.maxAge to let certain sessions 
// have a different value than the default. 
app.use(function (req, res, next) {
  // here you can see whether they checked the checkbox or not, and change maxAge.
  // the default should be that it expires when the browser is closed
  req.sessionOptions.maxAge = req.session.maxAge || req.sessionOptions.maxAge

  // or you can try to set expires to 1 day from now:
  req.sessionOptions.expires = new Date(Date.now()+86400000)
  // or at the end of the session:
  req.sessionOptions.expires = 0
})