我的node/express/passport应用程序工作正常,但是当我在我的jade模板中包含我的客户端requirejs应用程序(位于/public/js/文件夹内)时,如下所示:
script(src="js/vendor/requirejs/requirejs.js", data-main="js/main")
passport 多次调用 deserializeUser。
我的静态文件夹是在 main.js 中初始化 Passport 之前声明的:
app.use(express.static('public'));
app.use(passport.initialize());
app.use(passport.session());
客户端requirejs项目没有经过r.js优化,因此它必须加载所需的javascript文件。当客户端项目由 r.js 优化时,它工作得很好 - 没有额外的反序列化调用(只有 1 个)。
这是 Passport 所期望的行为吗?这不是一个大问题,因为它是在开发中这样做的,但这是一个可以解决的问题吗?
最佳答案
也许您可以将记录器中间件添加到您的应用程序(例如 morgan),并尝试通过查看 http 请求日志的序列以及与反序列化调用关联的日志,将反序列化发生与特定静态文件相关联。
关于node.js - deserializeUser 被客户端 requirejs 应用多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635163/