Node.js 使用Passport路由文件问题
我正在使用NodeJS、Express和PassportJS构建一个web应用程序。我的一条路线出了问题,我弄不懂。当我有:Node.js 使用Passport路由文件问题,node.js,authentication,express,routes,passport.js,Node.js,Authentication,Express,Routes,Passport.js,我正在使用NodeJS、Express和PassportJS构建一个web应用程序。我的一条路线出了问题,我弄不懂。当我有: ... app.get('/auth/facebook', passport.authenticate('facebook')); ... 一切似乎都很好。但当我将其更改为: ... app.get('/auth/facebook', function(req, res) { passport.authenticate('facebook'); });
...
app.get('/auth/facebook', passport.authenticate('facebook'));
...
一切似乎都很好。但当我将其更改为:
...
app.get('/auth/facebook',
function(req, res) {
passport.authenticate('facebook');
});
...
挂起来了?我是否缺少app.get函数中的某些内容?我希望能够做到这一点,因为我希望使路径更加动态,在这里我可以确定passport的身份验证。例如:
...
app.get('/auth/:provider',
function(req, res) {
passport.authenticate(req.params.provider);
});
...
提供者可以是
facebook
,twitter
,或google
。passport.authenticate是中间件,请查看源代码:
authenticate('facebook')返回一个函数,该函数从express获取req、res、next参数并对其进行处理
因此:
这就是你需要的
app.get('/auth/:provider',
function(req, res, next) {
passport.authenticate(req.params.provider)(req, res, next);
});