Node.js 配置Passport以接受无正文的请求?
我正在尝试设置一个LocalStrategy,允许在请求主体中不提供凭据的情况下登录Node.js 配置Passport以接受无正文的请求?,node.js,passport.js,Node.js,Passport.js,我正在尝试设置一个LocalStrategy,允许在请求主体中不提供凭据的情况下登录 app.post('/signin', passport.authenticate('local-signin', {failureFlash : true}), function (req, res) { res.send(req.user); }); 策略如下: passport .use('local-signin', new LocalStrategy({ userna
app.post('/signin', passport.authenticate('local-signin', {failureFlash : true}), function (req, res) {
res.send(req.user);
});
策略如下:
passport
.use('local-signin', new LocalStrategy({
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true
},
function (req, email, password, done) {
if (email.length > 0 && password.legnth > 0) {
/** Do some stuff with credentials **/
}
else {
console.log('method2');
/** Other method to log in with request headers...**/
}
});
不幸的是,当我在没有正文的情况下向/signin
发布请求时,出现了状态400错误,并且策略没有加载(在示例中,我没有在控制台中编写method2
)
有没有办法将Passport配置为无正文地接受请求
作为参考,我使用AngularJS前端,使用$http.post('/signin')发出的请求代码>
护照版本:0.2.1
passport本地版本:1.0.0将passport包装起来。在另一个类似这样的中间件中验证中间件
app.post('/signin', myPass, function(req,res){res.send(req.user)});
function myPass(req, res, next){
// do your thing
passport.authenticate('local-signin', {failureFlash : true})(req, res, next);
// ^ this returns a middleware that you gotta call here now ^
}
好主意!我看到400错误是由Passport中间件处理的,我建议中间件创建者在本地策略中添加一个新选项,自己处理没有字段的请求:啊,我对这个答案有点困惑,它如何改变任何东西,它如何防止passport在没有字段的情况下抛出失败?我问了一个问题,如果你有空闲时间,你可以在这里回答它或为我澄清一下吗?问题是,我想在passport策略中添加一个新用户,即使没有提供密码和用户名