2017-01-02 57 views
2

我正在爲我的網站在node express中構建一個單個頁面管理面板。Node.js Express.js祕密靜態文件

我決定有一個管理視圖文件,並通過jQuery或AJAX或類似的東西(尚未決定)加載部分的HTML。我需要從靜態文件文件夾中提供這些文件(因爲我必須將它們加載到客戶端),但是這裏的問題是這些文件現在適用於所有人(也就是.css .js文件等)。

如何從用戶隱藏這些文件的可能性?或者如何隱藏某些文件或在客戶端加載不公開的文件?

我真的不想在我的管理視圖文件中插入所有.css和.js代碼。

SOLUTION

找到了解決辦法在這裏:How to secure a static route with Express and Nodejs

對不起重複的,之前我沒有找到它。

+1

好像你需要使用某種形式的授權來處理哪些文件應該被提供給那些誰被允許查看它。看看[這個NPM包](https://www.npmjs.com/package/express-authorization)處理授權或[這一個](https://www.npmjs.com/package/acl)。注意:授權與認證不同。讓我們知道它是否有助於並符合您的需求。 –

+0

@BrunoGrisoliaCasarotti謝謝你的回答。我在另一個問題中找到了解決方案,也感謝您分享有趣的軟件包。 –

回答

2

您應該使用某種像護照和中間件認證可幫助保護您的靜態文件:

app.use('/admin', function(req,res,next){ 
if(req.user){ 
    return express.static(path.join(__dirname, 'public')); 
} else { 
    res.render(403, 'login', {message:'Please, login!'}); 
} 
}); 
+0

謝謝你的回答。這對我來說似乎是一個有效和簡單的靈魂。不幸的是,express.static函數在其他函數中並不適用於我。 –