仅允许通过身份验证的用户访问受保护的页面

egi*_*dra 6 javascript node.js express passport.js

将此代码放在足以保护页面免受未经身份验证的用户的路径中?

if (!req.user) return res.send(401, "Not allowed in");
Run Code Online (Sandbox Code Playgroud)

use*_*109 23

您可以req.isAuthenticated()用来检查请求是否经过身份验证.

function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated()) { return next(); }
  res.redirect('/login')
}

app.get('/server', ensureAuthenticated, routes.server.get);
app.get('/login', routes.login.get);
Run Code Online (Sandbox Code Playgroud)

或者像这样

app.all('*', function(req,res,next){
  if (req.path === '/' || req.path === '/login')
  next();
  else
  ensureAuthenticated(req,res,next);  
});
Run Code Online (Sandbox Code Playgroud)

  • 基督,感谢上帝`isAuthenticated()`是**完全无证**.这就像图书馆的整个观点.有一天,我会找到这个贾里德·汉森的家伙,把一只带有橡皮手的无人机送到他的房子里,然后反复殴打他用护照来摧毁世界.谢谢. (10认同)