我使用passport-local遵循了passport.js的文档:http://www.passportjs.org/docs/authorize/
当我把我的用户发送到/login
时,他们被认证了,但是在那个文档中没有任何地方可以找到如何授权我的用户。
我已经试过了,但这给了我一个bad request
:
router.get('/somepage', passport.authenticate('local'), function(req, res, next) {
});
我正在寻找一种方法来保护我所有的网页一次。我正在使用Express 4.16,并使用不同的路由文件来分割我的路由。
山姆
4条答案
按热度按时间v6ylcynt1#
您可以使用
middleware
并使用一个小技巧来在策略之间切换例如:
kkih6yb82#
您可以像下面这样添加中间件代码
z0qdvdin3#
由于我希望所有路由(除了偏离路线的登录路由)都能通过授权,我按如下方式解决了这个问题:
nuypyhwy4#
我不知道你说的“但是在那个文档中我找不到如何授权我的用户”是什么意思。Passportjs不会授权任何用户。它是一个身份验证中间件。授权不同于身份验证。
我认为您正在寻找应用程序级中间件。您必须使用app.use来使对服务器的每个请求都进行身份验证。你可以在这里阅读更多。https://expressjs.com/en/guide/using-middleware.html#middleware.application