2015-11-02 80 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开头的请求是否存在该令牌不是如果不是发送未经授权我如何使用相同的东西来为我的静态资源提供服务 –