[英]Express Static for Authenticated Users
如何為Express中的用戶會話啟用靜態目錄? 以一些HTML文件為例,我知道我可以通過下面的調用提供一個名為private的目錄
app.use("/private", express.static(appDir + '/private'));
我想做的只是在用戶通過身份驗證后啟用靜態資源(以stormpath為例)。
例如,下面的函數將檢查用戶是否存在於Stormpath中,如果存在,則該應用程序將為地圖提供靜態目錄。
app.get('/getPrivate', stormpath.getUser, function(req, res) {
if(req.user){
app.use("/private", express.static(appDir + '/private'));
res.redirect('/private/index.html');
}else{
//your not logged in.... redirect to login page
}
});
一旦我為一個用戶啟用了靜態目錄,這將無法正常工作,然后另一個用戶無需登錄即可訪問私有目錄。
如果要對路由進行身份驗證,則應使用stormpath.loginRequired
。 如果用戶未登錄,他們將被重定向到登錄頁面。
在我的路線中使用app.all可以達到目的
var path = require('path');
var express = require('express');
var appDir = path.dirname(require.main.filename);
app.all('/private/*', stormpath.getUser, function(req, res, next) {
if(req.user){
next();
}else{
//you are not logged in.... redirect to login page
res.redirect('/');
}
});
app.use("/private", express.static(appDir + '/private'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.