我有应用程序,它建立在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();
}
});
对于来自/ app / view / check的请求,这意味着请求的标头是否包含使用jwt生成的令牌
最佳答案 如果您的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-Header中提供你的JWT
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();
});
}
});