gpt4 book ai didi

node.js - Passport.js:如何保护所有路由?

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:41 25 4
gpt4 key购买 nike

我遵循了 Passport.js 的文档和 Passport-local: http://www.passportjs.org/docs/authorize/

当我将用户发送到 /login 时,他们已通过身份验证,但在该文档中我找不到如何授权我的用户。

我已经尝试过这个,但这给了我一个错误的请求:

router.get('/somepage', passport.authenticate('local'), function(req, res, next) {

});

我正在寻找同时保护我所有页面的方法。我正在使用 Express 4.16 并使用不同的路线文件来分割我的路线。

山姆

最佳答案

您可以使用中间件和一个小技巧来在策略之间切换

示例:

const allowUrl = ['public', 'nonprivate','home'];


const authenticationMiddleware = (whiteList =[]) => (req, res, next) => {
if(whiteList.includes(req.baseUrl)) {
next();
}

if (req.isAuthenticated()) {
return next()
}
res.redirect('/');
}


app = express();
app.use(passort.initialize());
app.use(authenticationMiddleware(allowUrl));
app.use(apiRouter);


app.listen(3000, ()=> console.log('hello internet');

关于node.js - Passport.js:如何保护所有路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54613793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com