问题标签 [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 回答
291 浏览

node.js - express-session 根据浏览器有不同的结果。为什么?

我正在阅读https://www.npmjs.com/package/express-session并且处于混乱的世界中。

我正在使用的商店是https://www.npmjs.com/package/express-mysql-session

考虑这条路线

在普通的 chrome 浏览器上,每次访问 /generateUser 都会看到以前的用户值。所以 5 次刷新,我的用户值为“d11111”。但是现在,如果我隐身或在 safari 上执行此操作,则值始终为“d”。这些浏览器有什么不同?

0 投票
0 回答
1157 浏览

node.js - 如何确定用户的会话是否已过期

我正在使用express-session并且有一个辅助函数,我的路由中间件都在调用它,它实际上会检查req.session对象上的属性,如果不存在则返回 401。

所以我现在有这个:

connect-mongo用作我的商店,登录时我正在添加一个accessToken属性以req.session使用从 OAuth 提供程序返回的值。

如果我控制台注销登录req.session后的内容,我会看到

当会话过期并且我的函数在上面发送 401 时,我看到了

req.session当非登录用户访问应用程序时,也会评估上述内容。因此,我试图找到一种方法来判断用户是否以前登录过并且他们的会话 cookie 是否已经过期。express-session我想知道我是否可以以某种方式使用浏览器 cookie 集合,但是由于使用了 httpOnly ,我将无法访问由生成的那个。

所以我最终想做的是在响应正文中添加一些额外的信息,其中res.status(401).send();包含某种原因代码来说明为什么发送 401,例如“SESSION_EXPIRED”,但我首先需要找出一种知道的方法用户之前是否有过期的会话。

这有意义吗,这可以实现吗?

谢谢

0 投票
1 回答
904 浏览

node.js - 快速会话中的过期对象不是正确的类型?

每隔一段时间,我的 nodejs 应用程序——它使用expressv4.12.2 和express-sessionv1.13.0 模块——抛出以下TypeError异常并崩溃:

我不确定为什么这会是一个错误,因为toUTCString()它是一个函数。(除非opt.expires不是Date对象。)

从测试应用程序,也因为这似乎涉及opt.expires,我想知道当会话超时时是否会发生这种情况。

这是我设置会话的方式:

如果用户继续使用应用程序,我的目标是延长会话到期时间。

我的设置方式是否有问题,或者我遇到了一些可以通过特定模块版本组合修复的错误?

0 投票
0 回答
350 浏览

express - React Router 刷新时报告 404 Not Found

比如说,我有 2 个页面,localhost 和 localhost/test,在 localhost 上有一个链接,指向 localhost/test。

localhost/test 可以通过点击链接访问,但是刷新或者手动输入 url localhost/test 时会返回

我的代码是这样的:

如何解决?

我试图通过 express 4 解决它,但是当我从“express”导入 express 时,它会报告

因此我尝试了 express-session,但我找不到如何使用它的完整示例。许多示例都有一个名为“app”的变量,但它是如何定义的?或者请告诉我如何使刷新时可以访问网址。谢谢你。

0 投票
1 回答
1992 浏览

node.js - Node.js - res.redirect 不起作用

我是 node.js 的初学者,目前正在研究 express.js 重定向例程。到目前为止,代码工作正常,会话变量正在存储并且重定向工作正常。但是一旦我打开一个新选项卡并尝试输入一个像 (127.0.0.1/login.ejs) 这样的 url,它应该重定向到 hub.ejs,如果我登录了。但在这种情况下,重定向不起作用。如果我没有登录并在新选项卡中输入例如(127.0.0.1/hub.ejs),也会出现同样的问题。重定向应该加载 login.ejs 但根本没有任何工作。页面保持空白

0 投票
2 回答
7720 浏览

node.js - Node.js、ws 和 express-session:如何从 ws.upgradeReq 获取会话对象

我有一个基于 express、express-session 和 ws 的应用程序(用于 websocket 支持)。

我已使用此代码启用会话中间件:

我可以在 get 处理程序中读取和保存会话变量:

(第一次打印“未定义”,第二次按预期打印“OK”)

现在我在同一个应用程序中也有一个由 express 处理的 websocket 服务器,我想req.session在.ws.on("connection",...)ws.on("message",...)

问题是没有对原始req对象的引用,只是对upgradeReq作为 websocket 连接处理程序包装器的 a 的引用。检查此 upgradeReq 我可以找到包含会话 cookie 值的connect.sidin 。ws.upgradeReq.headers.cookie

在我的想法中,有可能以req.session某种方式从中获得原件。

我怎样才能做到这一点?

0 投票
0 回答
482 浏览

node.js - MongoStore,Passport-local - 会话未存储在数据库中

我有一个 Node.js Express 应用程序,我正在尝试使用 MongoStore 保存会话并使用 Passport-local 进行身份验证。该应用程序未将会话存储在db.sessions

应用程序.js

localstrategy 的实现如下。MongoDB是我自己的与 MongoDB 交互的模块。

身份验证请求。当我尝试使用 MongoStore 会话时,我已将选项 - 传递{session: false}req.LogIn函数。

0 投票
1 回答
3268 浏览

node.js - 在 express 中使用 csurf 和 session

我正在编写一个单页应用程序MEAN stack,并使用express-sessionwithredis进行会话管理。

我想在客户的 cookie 中使用 scrf 令牌。

问题是当我添加csurf中间件时,它在 redis 中设置了一个带有名称的会话csrfSecret,但是我如何将它在 cookie 中发送给客户端?

中间件:

并且csrf-token正在发送给客户端,但它什么也没做。我从模块收到 403 错误。

感谢您的任何回答或想法。

0 投票
1 回答
6826 浏览

javascript - 快速会话无法设置未定义的属性“id”

这是我的设置,这是我的代码

我将发布(登录)并在会话中保存 id 但此代码总是错误无法设置属性...我该如何解决它?...感谢您的回答

0 投票
1 回答
831 浏览

node.js - Node Express 会话不工作。为下一个请求获取 req.session.user 未定义

这是我的代码。我以前以同样的方式使用过这个。但现在它不起作用,无法弄清楚。