簡體   English   中英

為經過身份驗證的用戶表示靜態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM