2012-12-09 45 views
6

我使用Express + Mongoose + Passport + Connect-mongo的一個非常直接的設置,並且一切正常。唯一讓我困惑的是,即使對於靜態文件,我也可以看到passport.unserializeUser,這從我的應用程序角度來看是絕對沒有意義的。表示:是否可以繞過靜態文件的會話?

我可以理解,在某些情況下,您希望在某種授權下也可以提供靜態文件,但我想知道如何在整個會話中間件中「跳過」,以防靜態文件。

(在生產環境中,我可以不使用cookies資產)

+4

只是把'express.static'在其他所有的中間件 –

+0

它的工作原理,我發現這太棒了。喬納森,你會介意「回答」這個問題嗎,我實際上可以給你一些業力嗎? :) – Claudio

+1

我不這樣做的要點! –

回答

11

中間件按照添加的順序被調用。只需將您的靜態中間件移動到app.js即可。

例如:

app.use(express.static(__dirname + "/public")); 
// any other middleware 
app.use(passport()); // or whatever your passport config looks like 
1

你可以從你不存儲任何cookie在所有其他領域服務於靜態文件。這也意味着您在提供這些文件之前不能進行任何(安全)檢查。

此技術被各種網站使用,如StackOverflow,Facebook和LinkedIn。

+0

是的,當然,我知道(正如我的最後一句話所述)。但我不知道我是否可以通過編程方式執行:) – Claudio

+0

我對Node.js + Express + Passport不夠熟悉,但是您可以將您的Web服務器設置爲返回所請求的文件(如果存在並重定向到您的應用程序,如果請求不是現有的文件或文件夾。 – Arjan

相關問題