2015-11-02 23 views
3

我有應用程序,它是建立在的NodeJS和angularjs,我在哪裏使用基於JWT令牌認證認證和API調用,是工作的罰款如何保護靜態文件夾中的表達與智威湯遜

即使用戶是現在不登錄應用程序是服務所有的靜態資源如果用戶沒有登錄並將用戶重定向到登錄頁面,如何避免加載應用程序

最後,我能夠在app.js floder中添加代碼sinpet app.use('/ app/view/*',function(req,res,next){

if (!req.headers['authorization']) { 
     res.sendfile('app/views/Error.html'); 

    } else { 
     next(); 
    } 
    }); 
/檢查

這意味着該請求與/應用/視圖來如果請求的標頭含有與智威湯遜

+0

,檢查用戶的身份驗證,然後允許他訪問的S靜態文件 – Subham

+0

請詳細說明ame指向我的一些文章或示例 –

回答

1

生成的令牌如果JWT被存儲在cookie中,你可以使用的道路像這樣的:

router.all('/*', function(req, res, next){ 
    if (!req.cookies.session) { 
    return res.json("ERROR"); 
    } 
    else { 
    ValidateCookieFunction(req.cookies.session, function(auth_state) { 
     if (!auth_state) 
      return res.json("ERROR"); 
     else 
      next(); 
    }); 
    } 
}); 

否則你可以提供你的智威湯遜在HTTP標頭

router.all('/*', function(req, res, next){ 
    if (!req.headers['x-access-token']) { 
    return res.json("ERROR"); 
    } 
    else { 
    ValidateJWTFunction(req.headers['x-access-token'], function(auth_state) { 
     if (!auth_state) 
      return res.json("ERROR"); 
     else 
      next(); 
    }); 
    } 
}); 
在客戶端
+0

我不使用cookie會話來存儲令牌我已經將令牌放置在$ window對象中,並編寫了一個攔截器來攻擊帶有令牌的請求頭 –

+0

@DhanaLakshmi然後您提供您的JWT一個HTTP標頭,請參閱我編輯過的帖子 – IggY

+0

可以使用jwt令牌來提供快速bcoz的靜態內容我在服務器端有一個攔截器,它檢查以/ api開頭的請求是否存在該令牌不是如果不是發送未經授權我如何使用相同的東西來爲我的靜態資源提供服務 –