问题标签 [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 根据浏览器有不同的结果。为什么?
我正在阅读https://www.npmjs.com/package/express-session并且处于混乱的世界中。
我正在使用的商店是https://www.npmjs.com/package/express-mysql-session
考虑这条路线
在普通的 chrome 浏览器上,每次访问 /generateUser 都会看到以前的用户值。所以 5 次刷新,我的用户值为“d11111”。但是现在,如果我隐身或在 safari 上执行此操作,则值始终为“d”。这些浏览器有什么不同?
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”,但我首先需要找出一种知道的方法用户之前是否有过期的会话。
这有意义吗,这可以实现吗?
谢谢
node.js - 快速会话中的过期对象不是正确的类型?
每隔一段时间,我的 nodejs 应用程序——它使用express
v4.12.2 和express-session
v1.13.0 模块——抛出以下TypeError
异常并崩溃:
我不确定为什么这会是一个错误,因为toUTCString()
它是一个函数。(除非opt.expires
不是Date
对象。)
从测试应用程序,也因为这似乎涉及opt.expires
,我想知道当会话超时时是否会发生这种情况。
这是我设置会话的方式:
如果用户继续使用应用程序,我的目标是延长会话到期时间。
我的设置方式是否有问题,或者我遇到了一些可以通过特定模块版本组合修复的错误?
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”的变量,但它是如何定义的?或者请告诉我如何使刷新时可以访问网址。谢谢你。
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 但根本没有任何工作。页面保持空白
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.sid
in 。ws.upgradeReq.headers.cookie
在我的想法中,有可能以req.session
某种方式从中获得原件。
我怎样才能做到这一点?
node.js - MongoStore,Passport-local - 会话未存储在数据库中
我有一个 Node.js Express 应用程序,我正在尝试使用 MongoStore 保存会话并使用 Passport-local 进行身份验证。该应用程序未将会话存储在db.sessions
应用程序.js
localstrategy 的实现如下。MongoDB
是我自己的与 MongoDB 交互的模块。
身份验证请求。当我尝试使用 MongoStore 会话时,我已将选项 - 传递{session: false}
给req.LogIn
函数。
node.js - 在 express 中使用 csurf 和 session
我正在编写一个单页应用程序MEAN stack
,并使用express-session
withredis
进行会话管理。
我想在客户的 cookie 中使用 scrf 令牌。
问题是当我添加csurf
中间件时,它在 redis 中设置了一个带有名称的会话csrfSecret
,但是我如何将它在 cookie 中发送给客户端?
中间件:
并且csrf-token
正在发送给客户端,但它什么也没做。我从模块收到 403 错误。
感谢您的任何回答或想法。
javascript - 快速会话无法设置未定义的属性“id”
这是我的设置,这是我的代码
我将发布(登录)并在会话中保存 id 但此代码总是错误无法设置属性...我该如何解决它?...感谢您的回答
node.js - Node Express 会话不工作。为下一个请求获取 req.session.user 未定义
这是我的代码。我以前以同样的方式使用过这个。但现在它不起作用,无法弄清楚。