node.js - 如何从 Redis 保存和检索 session

标签 node.js redis session-state

我正在尝试将 Redis session 集成到我用 Node.js 编写的身份验证系统中。

我已经能够成功搭建Redis服务器,connect-redis和Express服务器。

这是我的设置(只是重要的一点):

var express = require("express");
var RedisStore = require("connect-redis")(express);
var redis = require("redis").createClient();

app.use(express.cookieParser());
app.use(express.session({
    secret: "thisismysecretkey",
    store: new RedisStore({ host: 'localhost', port: 6379, client: redis })
}));

现在...我如何实际创建、读取和销毁 session ?我知道这可能非常简单。我已经阅读了大量关于如何设置 connect-redis 的文章以及关于 SO 的许多问题,但我发誓每篇文章都只停留在配置上,并没有解释如何实际使用它...

最佳答案

这应该就是它的全部了。您可以通过 req.session 访问路由处理程序中的 session 。 session 会自动创建、保存和销毁。

如果您需要为用户手动创建新 session ,请调用 req.session.regenerate()

如果需要手动保存,可以调用req.session.save()

如果需要手动销毁,可以调用req.session.destroy()

the Connect documentation获取方法和属性的完整列表。

关于node.js - 如何从 Redis 保存和检索 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14014446/

相关文章:

node.js - 在 Mac OSX 上安装 Bower 时,path.join 的参数必须是字符串

node.js - 将 ElastiCache 连接到 Elastic Beanstalk 实例

c# - BookSleve 通过通配符删除 redis key

node.js - 如何使用 Jenkins 在多个服务器上同时部署 Node.js Web 应用程序?

javascript - 将回调函数传递给 Mongoose 聚合函数

如果在设定的时间范围内未检测到事件,则使用Javascript小书签/iFrame来自动刷新加载的页面?

asp.net - ASP.NET Masters:使用Session变量的优点/缺点是什么?

sql - 从表中返回随机的、不重复的行 - PostgreSQL

node.js - 错误 : Specified protocol was not requested by the client. Flutter 和 Node Web Socket

ruby-on-rails - 无法检索事件的 ActionCable channel