创建身份验证函数 node.js

creating authentication function node.js

我有这种漂亮的方法来检查某人是否使用 express-session 进行了身份验证。方法如下:

if (req.session.loggedin) {

... do code ...

} else {
    req.session.destory;
    res.redirect('/login')
}

但是,我可能想创建某种中间件,或者调用另一个函数调用的函数。像这样。

function auth (req, res) {
   if (req.session.loggedin) {

        return;

   } else {
    req.session.destory;
    res.redirect('/login')
   }

}

app.get('/home', (req, res) => {
  auth()
... do code ...

}) 

或:

app.get('/home', (req, res, auth) => {
... do code ...
})

这可能吗,如果可以,我该怎么做?

制作 auth 带有验证会话的中间件,记得在任何好的时候调用 next 函数。

function auth(req, res, next) {
   if (req.session.loggedin) {
       return next(); // call next function to go to next handler
   } else {
      req.session.destory;
      res.redirect('/login')
   }
}

然后,为每个需要身份验证的路由器应用中间件:

app.get('/home', auth, (req, res) => { // apply auth before "do code"
   // ... do code ...
})