我正在使用Express + Mongoose + Passport + Connect-mongo的简单设置,一切正常。唯一令我困惑的是,我可以看到passport.unserializeUser
甚至调用静态文件,从我的应用程序的角度来看 - 这绝对没有意义。
我可以理解,在某些情况下,您希望在某种授权下提供静态文件,但我想知道如果我正在提供静态文件,我可以“跳过”整个会话中间件。
(在生产环境中,我无法使用cookie作为资产)
答案 0 :(得分:12)
按照添加的顺序调用中间件。只需将静态中间件移到app.js
的早期。
例如:
app.use(express.static(__dirname + "/public"));
// any other middleware
app.use(passport()); // or whatever your passport config looks like
答案 1 :(得分:1)
您可以从另一个根本不存储任何cookie的域提供静态文件。这也意味着在提供这些文件之前,您无法进行任何(安全)检查。
这种技术被各种网站使用,例如StackOverflow,Facebook和LinkedIn。