我正在使用Express js。在根文件夾中,我有一個public
文件夾,其中包含子文件夾stylesheets
,javascripts
,fonts
,images
和html
。如果用戶未登錄,我想保護我的資產。例如,如果有人打開網絡瀏覽器並且沒有登錄請求http://localhost:3000/images/hello.jpg
,那麼請求應該被重定向到登錄頁面。如何關閉app.use(express.static('/ public')); Express js
爲了達到此目的,我有條件地使用express.static(path.join(__dirname, '/public'))
。
挑戰1
登錄頁面還具有一些4-5資產(CSS和JS文件),其被放置在相同的公共文件夾。
挑戰2
我使用此代碼express.static(path.join(__dirname, '/public'))
這樣的:
if(userIsLoggedIn){
express.static(path.join(__dirname, '/public'))
}else{
//what to do here???
//I need a code here which makes public folder as non-static folder
}
例如,我們有兩個用戶A和B的用戶使用不同的計算機。用戶A正在成功登錄,並且在服務器上,我們將public
文件夾設置爲static
,但用戶B尚未登錄,他現在直接訪問資產並且他可以訪問。
發生這種情況是因爲我們沒有將用戶基礎上的公用文件夾設置爲靜態,因此如果有任何用戶成功登錄,我們會將其設置爲靜態。
添加中間件以檢查所有受保護資產之前的身份驗證。 – krrish