问题标签 [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.

0 投票
0 回答
810 浏览

node.js - Redis 中的护照会话 cookie 不断被创建

我的 express 应用程序使用 PassportJS 来存储身份验证会话,但它在 redis 存储中创建了数量可笑的密钥,并且所有密钥看起来都一样:

他们确实有 TTL,但商店的规模正在无缘无故地增长。知道为什么要创建这些吗?我的钥匙看起来像:

如果我只是观察一下,大约每秒或两秒钟就会创建大约 10 个键。

这是我的会话代码的样子:

Redis init 函数返回一个 redis 客户端的实例:

0 投票
1 回答
20162 浏览

node.js - 快速会话中的 req.session 不持久

我有以下代码:

并重新加载页面,我只是不断收到视图计数为 0 的消息。

检查控制台,这是每次的输出:

所以它似乎根本没有节省

0 投票
1 回答
3738 浏览

node.js - express-session:为什么在我的会话信息设置之前执行重定向?

还有一个“我刚刚开始学习 node.js/express,现在我卡住了”的人在这里。我试过到处寻找答案,但我走到了死胡同。这是我的第一个 Stackoverflow 问题,所以如果我做错了什么或非常规,请告诉我。

我正在尝试创建一个 POST 请求,将用户对象保存到快速会话(在 MongoDB 上),并将您重定向到处理会话信息的 URL。

问题是,用户在设置标头之前被重定向,我得到以下信息: Error: Can't set headers after they are sent.

这是我的代码。我知道这很多..对不起。

路由器.post()

请注意“req.session.user = userObj”部分。在这里,我试图将会话中的“用户”设置为从 MongoDB 检索到的用户对象。在下一行中,我将用户重定向回“/”的 GET 请求处理程序,该处理程序根据会话信息处理用户。

出于某种原因,这些并没有按顺序发生。GET 请求处理程序找不到 req.session.user。

我知道 node.js 都是关于异步的,但是从我在网上找到的其他示例来看,这应该可以工作。我在这里想念什么?

0 投票
2 回答
3133 浏览

node.js - Cookie 与子域 nodejs httponly cookie 共享

我正在使用 express-session 模块来维护会话。我有两个应用程序。我想与这个应用程序共享 cookie,父应用程序在 example.com 中运行,子应用程序在 child.example.com 中运行。我使用它在子应用程序中设置的 express-session 设置 httponly cookie。我可以在 chrome 调试器的资源选项卡中验证该 cookie。

网络选项卡:

当第一次调用子域时:它加载请求中设置的“ http://www.child.example.com ”cookie。而 url 被重定向到服务器 IP 。之后cookie不可用。

http://13.25.230.2/index cookie 不可用

0 投票
1 回答
1037 浏览

javascript - Express 会话不仅仅适用于 IE

运行我的第三方 js 应用程序,在 IE 上玩 session 时看起来很奇怪。从这里使用 Chrome、FF 和 Safari 没有问题。

我的应用程序具有以下设计:

任何客户都可以使用我的第三方 js 代码。

所以,这个 widget.js 只是使用 express 调用我的应用程序节点。这个 widget.js 是一个 IIFE,在我的应用程序上获取请求并使用代码创建会话: app.js

小部件.js

我已经通过谷歌搜索了这个问题,但仍然没有解决方案。我将与恳求分享有关如何解决此问题的任何提示和知识。

注意:

我忘了说一些关键信息。该令牌已为所有浏览器(IE、Chrome、FF 和 Safari)生成良好。但是服务器的每个提示只为 IE 生成不同的令牌。该行为表明 IE 使每个请求都过期。

IIFE 参考。 https://en.wikipedia.org/wiki/Immediately-invoked_function_expression

0 投票
1 回答
1116 浏览

javascript - 为什么 app.use(...) 不能在异步函数中声明?

我正在尝试使用 express 框架设置 node.js 服务器并实现会话。

这有效:

但是,当我在异步函数中声明 server.use(session(...)) 时,它会被忽略 - 会话处理不再起作用。

这里 :

为什么不能这样做?

0 投票
0 回答
41 浏览

node.js - Nods.js 会话偶尔工作

在我的节点应用程序中,我使用4 条路由来获取数据,并在接收到数据时异步设置会话。我使用express.jsexpression-session npm。但是设置会话有时会起作用。(偶尔设置数据)。有时所有的数据都没有设置。请帮帮我。

重要的代码片段

0 投票
1 回答
1062 浏览

express - 如何在响应之前访问 Express(js)-session cookie 服务器端?

在节点服务器上使用 Express-session、Connect-mongo 和 PassportJS 的组合,我具有以下验证功能:

正如您在评论部分看到的,我想在响应发送到客户端之前访问 cookie 信息。我无法在“res”和“user”对象中找到任何此类数据。

具体来说,我正在寻找可以在 HTTP 响应中的“SET-COOKIE”标头中找到的相同字符串。

0 投票
3 回答
1665 浏览

node.js - NodeJS 请求重置会话

我正在从我的服务器向另一台服务器发出发布请求,为此我正在使用库https://github.com/request/request

所以,我使用下面的代码:

会话在调用这个帖子之前已经初始化,但是当它执行时,会话被重置。所以,在这种情况下,我从 session var 中丢失了 csrf 代码。

错误在“管道”函数中,因为如果我调用它,我会丢失会话,而不是在其他情况下,但我需要使用它。

如何在不丢失实际会话的情况下使用管道功能?

0 投票
0 回答
153 浏览

node.js - node.js 是否支持使用多个异步 HTTP 调用设置会话?

在我的 node.js 应用程序中,我正在使用异步调用设置会话。我使用express-session进行会话管理。但设置会话的行为偶尔会发生。我正在使用 Angular 应用程序调用 2 个 node.js 路由。

第一次它将调用 HTTP get 调用并正确获取所有数据。但是只有最后一个延迟的路线数据会被设置到会话中。不是来自两条路线的数据。似乎从延迟路由设置数据正在替换快速路由会话数据。这是我的代码。

有时所有数据都设置到会话中。(2次浏览器刷新后)