如何在 koa-generic-session() 中使用护照?
How to use passport with koa-generic-session()?
我创建了一个 Koa 应用程序,它使用具有本地身份验证策略的护照。我想使用模块 koa-generic-session 以便我可以将会话数据存储在 Redis 中。
如何同时使用这两个?
我发现这个 repo 是这样做的,但它似乎并没有真正使用会话,我不确定它是否正确:https://github.com/dozoisch/koa-react-full-example
(免责声明:我不熟悉 Koa,但我熟悉 Express 和 Passport。)
我已经查看了您提供的 link,下面是他们如何使用 koa-generic-session with 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 并将应用程序、配置文件和通行证变量传递给它。
以下代码来自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 calls for. While the project you linked uses a MongoStore with koa-generic-session, you can simply replace that constructor with a koa-redis constructor, as is shown in the koa-generic-session 文档的文档。
最后,Passport 被初始化:
41 - app.use(passport.initialize());
42 - app.use(passport.session());
此代码类似于将 Passport 与 Express 一起使用,因为这就是 Passport 通过会话管理身份验证所需的全部内容。
我创建了一个 Koa 应用程序,它使用具有本地身份验证策略的护照。我想使用模块 koa-generic-session 以便我可以将会话数据存储在 Redis 中。
如何同时使用这两个?
我发现这个 repo 是这样做的,但它似乎并没有真正使用会话,我不确定它是否正确:https://github.com/dozoisch/koa-react-full-example
(免责声明:我不熟悉 Koa,但我熟悉 Express 和 Passport。)
我已经查看了您提供的 link,下面是他们如何使用 koa-generic-session with 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 并将应用程序、配置文件和通行证变量传递给它。
以下代码来自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 calls for. While the project you linked uses a MongoStore with koa-generic-session, you can simply replace that constructor with a koa-redis constructor, as is shown in the koa-generic-session 文档的文档。
最后,Passport 被初始化:
41 - app.use(passport.initialize());
42 - app.use(passport.session());
此代码类似于将 Passport 与 Express 一起使用,因为这就是 Passport 通过会话管理身份验证所需的全部内容。