创建身份验证函数node.js



我有一种很好的方法来检查某人是否使用express会话进行了身份验证。方法如下:

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 ...
})

最新更新