问题标签 [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 投票
1 回答
9852 浏览

node.js - Redis 客户端连接到 Redis 远程服务器,但无法对其进行读写

在 DigitalOcean 中,我必须管理两台服务器“Nodeserver”和一个 Redis 服务器“Redisserver”,方法是通过前者上的节点/快速应用程序进行连接以使用后者的数据库。

出于本地测试的目的,我还在“Nodeserver”上本地安装了另一个 redis 服务器“LocalRedisOnNodeServer”。

我已将“Redisserver”配置为接受外部连接,如https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for -php-on-ubuntu-14-04,当尝试从“LocalRedisOnNodeServer”的 redis-cli 连接时,我能够访问远程“Redis_server”数据库,并且还可以通过它进行读写操作。

我仍然没有为'Redis_server'配置任何安全措施(如编辑iptables ..),我只设置了一个密码(redis.conf中的requirepass),我仍然不知道是否可以进行更安全的身份验证在此服务器上使用 SSH 制作(或者也为其配置我的应用程序代码)。

以下是 app.js 文件,其中包含 express 的会话和传递给会话的 RedisStore(接收 redis 客户端作为 args)。

这是 config.js :

我已经测试了与本地redis服务器'LocalRedisOnNodeServer'的应用程序连接并且它成功以及读取和写入密钥(用于设置和获取..)。这证明应用程序代码很好。但是当我从本地 127.0.0.1 的 redis 主机 (redisConf.host) 更改为“Redisserver” ip 时,只发生连接(redisClient.on('connect' 回调记录它'已连接到 redis!!'但是读取和写入函数(get 和 set)失败,因为它们的回调尚未被触发,另一个问题是无法创建 express 的会话,其值仍未定义。

我想知道为什么在应用程序代码中的 redisClient 失败时,在“Node_server 的 shell(redis-cli)上的本地 redis 服务器的客户端内,与远程服务器的连接以及读取和写入操作都是可能的。

redis_6379.log 中没有提到错误

此致

0 投票
1 回答
83 浏览

node.js - 如何为 node expresss.js 使用 cookie-session

由于express-session尚未准备好在生产环境中工作,除非您将模块更改为类似的东西redisStorage,所以我决定使用cookie-session

文档对我来说似乎不是很清楚。它说

其他选项传递给 cookies.get() 和 cookies.set()

  • 有什么cookies
  • 这是否意味着我们必须使用set来设置我们想要的选项?

我试图使用 cookieSession 作为express-session,但它似乎不是它的工作方式:

0 投票
1 回答
1771 浏览

node.js - 为 express.js 更新 Cookie-session

我正在使用 Expresss.js 的cookie-session模块来处理会话。

我希望在每次页面加载(或 ajax 调用)时更新会话。这就是他们通常在任何地方工作的方式。

文档只字未提。

我试过这样做,但没有成功:

0 投票
2 回答
2186 浏览

node.js - 为什么 req.session 在一个路由中设置,在另一个路由调用中不可用?

我正在使用 Express“express”:“~4.13.1”和“express-session”:“^1.11.3”。我已经这样设置了我的服务器:

应用程序.js:

index.js:

自最近两天以来,我一直在尝试解决此问题。任何人都可以帮忙吗?提前致谢。

0 投票
1 回答
1849 浏览

angularjs - 当 AngularJS 作为前端时,Express 中的会话未定义

我使用 NodeJS 和 Express 编写了 web 服务。服务在 8090 端口上运行。另外我在 AngularJS 中编写了前端并在 8080 端口上运行。

Mongo 存储了所有用户的用户名和密码

当我通过 HTML5/AngularJS 前端登录时,AngularJS 应用程序依次调用 express 的 http post 请求。用户已通过身份验证。我设置 req.session.email = 用户的电子邮件地址。

我什至可以返回并检查 AngularJS 的控制台日志,说明 req.session.email 在 express 中设置正确

问题是我在 Express 中创建了一个名为“restrict”的身份验证函数,作为中间件函数,仅当 req.session.email 未定义时才授予对其他 get/post 请求的访问权限。

但是即使在设置了会话之后,当 AngularJS 应用程序调用 Express 的另一个 get/post 请求时,这个“限制”函数也会阻止调用,因为它接收到未定义的 req.session.email

AngularJS 和 Express 都在同一台机器上。但我不认为这是问题所在。

快速代码片段

AngularJS 函数调用 Express 函数来检查会话状态

从根本上说,我创建的 AngularJS Resolve Function 应该是成功的,但事实并非如此。它失败了。我正在使用 live-server 在我的笔记本电脑上运行 HTML/AngularJS 并使用 nodemon 来运行 Express 应用程序

0 投票
1 回答
7483 浏览

node.js - 使用路由器在 expressjs 中进行会话处理

我正在使用 expressJS,我对会话有点困惑。我有 1 个 expressJS 服务器,可以从不同的 URL 访问。根据连接来自何处(打开哪个 URL),使用不同的数据库来提供响应。我可以看到会话是冲突的。

我的假设是我应该根据请求的 URL 设置不同的 cookie 名称,但似乎我无法在会话配置中指定函数。

有任何想法吗?

编辑

和一个示例 AJAX 调用

0 投票
1 回答
60 浏览

node.js - 在和尚的 findOne 命令中创建会话

这段简单的代码说明了问题:第二个会话没有保存。我怎样才能使这项工作?

0 投票
3 回答
700 浏览

javascript - How to hook into express session creation event

How can I tell when express creates a new session? I'm using a mongodb session store.

I'm having an issue with extra sessions being created, and want to narrow down on the problem by tracking which urls requests are triggering new sessions to be created.

0 投票
0 回答
38 浏览

javascript - 监控 chrome 扩展的会话视图?

我目前有一个 chrome 扩展,可以从我的 node.js 服务器获取 javascript。但是,我要提供的 javascript 文件将取决于https://www.google.co.uk/的访问次数。

我想在服务器端执行此操作,因此诸如快速会话之类的解决方案可能会起作用。但是扩展不是基于服务器的,那么这怎么可能呢?

我想避免将 cookie 发送到数据库并不断检查数字以启动相关的 javascript 文件。

0 投票
1 回答
183 浏览

javascript - ' undefined is not a function' Error on app.use session in NHibernate, mongo store

I have a database in mongo to store session state called 'SessionStore' with a collection called 'Sessions' to store session state.

I'm using expression-session for managing sessions.

Code to setup sessions is as follows;

Except when it gets to the last line it fails with the following;

I think I have missed some part of the set-up but I am not sure what. Can anyone suggest something.