node.js - 如何在 koa-generic-session() 中使用 Passport ?

标签 node.js passport.js koa passport-local

我创建了一个 Koa 应用程序,它使用具有本地身份验证策略的 Passport 。我想使用模块 koa-generic-session这样我就可以将 session 数据存储在 Redis 中。

如何同时使用这两者?

我发现这个 repo 是这样做的,但它似乎并没有真正使用 session ,我不确定它是否正确:https://github.com/dozoisch/koa-react-full-example

最佳答案

(免责声明:我不熟悉 Koa,但我熟悉 Express 和 Passport。)

我查看了您提供的链接,下面是他们如何将 koa-generic-session 与 passport 一起使用。

server.js文件中,以下几行是指配置 Passport。

08 - const passport = require("koa-passport");
13 - const config = require("./config/config");

38 - require("./config/passport")(passport, config);
40 - require("./config/koa")(app, config, passport);

第38行是传统的passport配置文件,简单的设置了序列化和反序列化。
第 40 行引入 koa.js并将应用程序、配置文件和 Passport 变量传递给它。

以下代码来自koa.js:

04 - const session = require("koa-generic-session");

18 - app.keys = config.app.keys;

查看koa.js,koa-generic-session赋值给变量session。这个变量后来在这里被调用:

35 -  app.use(session({
36 -      key: "koareactfullexample.sid",
37 -      store: new MongoStore({ url: config.mongo.url }),
38 -   }));

在第 18 行,app.keys 被初始化为 koa-generic-session 的文档呼吁。虽然您链接的项目使用带有 koa-generic-session 的 MongoStore,但您可以简单地用 koa-redis 构造函数替换该构造函数,如 koa-generic-session 中所示。文档。

最后,Passport 被初始化:

41 - app.use(passport.initialize());
42 - app.use(passport.session());

此代码类似于将 Passport 与 Express 一起使用,因为这就是 Passport 通过 session 管理身份验证所需的全部内容。

关于node.js - 如何在 koa-generic-session() 中使用 Passport ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36873918/

相关文章:

node.js - 从移动客户端进行 oAuth 的 "right"方式

node.js - 我想在nodejs中按顺序同步执行下面的代码

javascript - 重新加载/重新初始化/刷新 CommonJS 模块

node.js - Jest 提示错误……我告诉 Jest 要期待

node.js - ejs 模板无法正确渲染

node.js - 对 NodeJS(和 Passport 中间件) session 感到困惑

node.js - 错误 : No valid exports main found for (Module path)

node.js - 如何使用 Koa.JS 2 上传文件?

node.js - Heroku 上的 Node.js 应用程序的 MongoDB 查询需要 2-3 秒

javascript - 使用 vows、tobi 和 node.js 进行 REST API 测试