问题标签 [express-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 是否可以将 express-session 添加为中间件,所以我不必添加到每个页面
我想登录用户并在那里存储会话,以便我可以识别它们。然后在后端有一些代码从那里获取数据并允许我将用户名传递给另一个数据库方法。
我有以下内容,但想使用会话而不必将其添加到我需要它的每个页面,或者这不可能?
node.js - 如何添加快速会话对象?
我想堆叠并将变量从路由器传递到另一个路由器并将其堆叠,因此我选择了 express-session。这是我设计的计划。
- 将 req.body 值保存到 req.session.cAttr obj。
- 移动到下一页并添加其他值(每个视图都已连接)
- 在最后一个视图中,将值保存到 mongoDB
这是 app.js 的一部分
路由器
并像这样快速打印出来Cannot set property of 'cAttr' undefined.
node.js - 风暴路径快速会话注销不删除会话
我在我的 express 应用程序中使用了stormpath-express 和 express-session。登录部分工作正常。但是,当我注销时,以前的会话属性仍然存在于会话中。我可以看到会话属性 connect.sid 保持不变
我像这样调用/logout<button class="btn btn-default btn-default navbar-btn" onclick="$.post('/logout', function(data) {location.href='/'})">
这是对/logout 的ajax POST 调用。
根据stormpath 文档,会话将被销毁。但是,当我使用其他用户登录时,之前的会话 cookie 仍然存在。
注销后,之前的会话属性仍然存在
javascript - 仅在某些请求上保存用户会话
我使用connect-mongo和express-session来跟踪用户的会话。我有以下代码来设置会话:
这样做的问题是为发送到服务器的每个请求创建一个会话。例如,我使用 Amazon Web Services 托管我的应用程序,并且每 10 秒向我的服务器发送一个请求以确保它仍然正常运行(称为运行状况检查)。健康检查请求是对 mydomain/health 的 GET 请求。但是使用我拥有的代码,这将创建一个新会话,该会话存储在我的远程 Mongo Db 的会话集合中。所以数据库增长得非常快。
一些背景知识:我的应用程序允许用户上传文件,然后与每个文件进行交互。我只希望会话跟踪用户正在与之交互的 CURRENT 文件(在我的会话中,我保留当前文件 ID、文件路径、选择的当前文件参数等)。所以基本上,我只想为我的 API 的某些请求设置会话,而不是全部。
所以我想我会重写我的代码:
然后我计划在内部进行检查setSession()
以查看请求端点是什么,如果请求是我想要会话的对象之一,则设置会话。但是,在更改了我上面的代码之后,这会立即破坏我的应用程序。下面我有:
现在,在session()
离开app.use
并进入它自己的方法之后,req.sessionundefined
和我的应用程序中断了。知道为什么会这样吗?
此外,这是停止在对 API 的每个请求中存储会话的好方法吗?
mongodb - express-session 和 connect-mongo 设置
我正在使用express-session
并且现在想要用于connect-mongo
持久存储会话。我已经看过文档和一些教程,并且大部分都了解它是如何工作的,但是我假设您首先需要一个 mongoDB 实例设置,所以connect-mongo
有什么可以连接的吗?
我见过的一些示例涉及连接到本地主机上的测试 mongoDB,那么这只是将 mongoDB 作为标准安装然后使用该实例的情况吗?
express - 快速会话不存储会话
所以我正在使用 isomorphic-redux 和 React.js 构建一个 Web 应用程序。我目前正在尝试使用 Node.js 中的护照进行基本身份验证。但是我遇到了一个问题,当我尝试登录时,我的 cookie 会话似乎没有加载到浏览器中。
这是迄今为止我编写的代码的精简版本。
服务器.js
护照.js
./strategies/local.js
当我登录时,它能够序列化会话,但是由于我猜,会话不会被存储,它不会反序列化会话。
node.js - 与 passport.js 多个 cookie 的快速会话
我正在尝试使用 passport.js 和 express-session 实现登录功能,效果很好,
在这里,maxAge
isnull
意味着客户端在关闭浏览器窗口时会被注销。但是,我想在客户的电子邮件地址中存储一个额外的 cookie,以便在他们稍后再来时预先填写<input type="text" name="email">
他们想要重新登录的时间。
我尝试app.use()
了另一个会话对象,只是为了将电子邮件信息存储在另一个 cookie 中,但由于某种原因,cookie 只设置了一次(第一个)。
在任何地方都找不到任何明智的解决方案:(
哦,我不得不提一下,我考虑过将cookie-parser
中间件与 一起使用express-session
,但文档指出它可能会导致冲突。
node.js - express-session:在 401 响应中发送额外的细节
我正在使用 express-session 并且想知道是否可以在 401 响应中发送一些额外的详细信息,当不再找到会话时会发回。
我想区分会话何时过期与何时未找到会话,因此我可以在响应正文中发送一些额外的详细信息,客户端可以使用这些详细信息向用户显示他们的会话已过期的一些信息文本。
这可能吗?
希望我对这个问题有意义!
node.js - express-session:滚动会话到期配置
所以我正在使用与 mongo 商店的 express-session,如下所示:
我有一些登录中间件,在成功登录后我想设置会话 cookie 到期时间。
所以我现在正在使用 10 秒的到期时间进行测试
我希望为每个后续请求重置会话到期。目前在 10 秒后,无论我在登录后发出多少请求,会话都会过期。
我觉得我在这里误解了一些东西!
编辑
好的,所以我错过了rolling
文档中的配置选项,但即使我在会话配置选项中将其设置为 true,也会发生相同的行为:
我现在在控制台记录我的路由中 cookie maxAge 的值,并看到它随着登录后的每个后续请求而减少,它永远不会重置回 10000。
我究竟做错了什么?
解决了
好的,所以我遇到了关于这个问题的评论
我更改resave
为 true ,它现在按预期工作。
javascript - Express-Session 中的对象方法
目前我正在尝试将一个对象与一个快速会话链接起来。
有我的代码:
所以,我的问题是,我想将一个对象链接到一个会话(通常是一个 SQL 连接对象)。并在“任何地方”重新使用这个对象来执行查询等。但是当我尝试使用我的函数时,我收到以下错误消息:
“req.session.engine.connectMe 不是函数”
仅供参考,我的引擎对象和引擎工厂代码:
引擎
引擎工厂
正如我所说,目标是将 SQL 连接与用户会话链接起来。将连接提供给用户,然后,应用程序重新使用用户的连接来询问数据库(关于那个,我知道池连接模式更好,但这是这个项目的要求,原因有很多) .
但目前我不能重用对象的方法......
谢谢您的帮助。