Node.js 配置Passport以接受无正文的请求?

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

我正在尝试设置一个LocalStrategy,允许在请求主体中不提供凭据的情况下登录

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策略中添加一个新用户,即使没有提供密码和用户名