2015-07-20 33 views
1

我正在爲Node/Express站點添加身份驗證。我的身份驗證使用護照。身份驗證對路由正常工作,但允許用戶猜測URL並直接訪問圖像/視頻等。沒有登錄。您如何密碼保護Node/Express中的靜態資產?

我該如何預防這種情況?我搜查了關於快遞和護照的文件,但沒有看到任何解決方案?

+2

我的猜測是要確保您的auth中間件獲得對靜態資源的請求。您不會找到它的文檔,因爲它與要求對其他任何路由進行身份驗證沒有區別。 –

回答

0

您是否在使用API​​等任何API?對於Instagram的護照包括這樣的功能:

function ensureAuthenticated(req,res,next){ 
    if(req.isAuthenticated()){ 
    console.log("USER IS AUTHENTICATED"); 
    return next(); 
    } 
    console.log("USER IS NOT AUTHENTICATED"); 
    res.redirect('/home'); 
} 

可以放置在你的路由文件的頂部,將用戶重定向到一個登陸頁面(例如/ home),如果他們沒有被該屆會議期間進行身份驗證。

一個例子,更多信息可以在這裏找到:https://github.com/jaredhanson/passport-instagram/blob/master/examples/login/app.js或谷歌搜索的Instagram護照

1

只要確保你的認證中間件是一個靜態前加入。當然這個身份驗證中間件應該能夠讓一些請求通過(例如獲取登錄頁面的例子)。