Node.js 如何为单页应用程序使用Passport.js和节点

Node.js 如何为单页应用程序使用Passport.js和节点,node.js,express,passport.js,Node.js,Express,Passport.js,我想从来没有一个问题像这样让我烦恼过。似乎有字面上的0个地方可以看或回答这个问题。我只想让passport截获对“/login”和“/getloginStatus”的调用 登录时,我只想使用Json对象作为{username/password}的参数。当我登录时,如果用户的浏览器中有身份验证票证,我只想返回true/false 这就是我所拥有的,但它一点也不起作用,一半的问题似乎是我的本地战略实施从未被调用 var passport = require('passport') , Loc

我想从来没有一个问题像这样让我烦恼过。似乎有字面上的0个地方可以看或回答这个问题。我只想让passport截获对“/login”和“/getloginStatus”的调用

登录时,我只想使用Json对象作为{username/password}的参数。当我登录时,如果用户的浏览器中有身份验证票证,我只想返回true/false

这就是我所拥有的,但它一点也不起作用,一半的问题似乎是我的本地战略实施从未被调用

var passport = require('passport')
    , LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
    function(username, password, done) {

        console.log('this NEVER gets called');

    }
));

app.post('/api/authentication/login', function(req, res, next) {
            passport.authenticate('local', function(err, user, info) {

            console.log('this does get called but so what?');

            if (err) { return next(err); }

            if (!user) { return res.redirect('/login'); }
            req.logIn(user, function(err) {

                console.log('this does get called but so what am I logged in?');

                next();

            });
        })(req, res, next);
});

app.get('/api/authentication/getloginStatus', function(req, res, next) {
            passport.authenticate('local', function(err, user, info) {

             //what do I return here? !!!?

        })(req, res, next);
});

非常感谢您的帮助

Passport.js使用当前已验证的用户填充
request.user
。所以,要获取当前用户的信息,您可以这样做

app.get('/api/authentication/getloginStatus', function(request, response) {
  if(request.user) {
    response.json(request.user);
  } else {
    response.status(401); //Authorization required
    response.json({"error":"Authorization required!", "code":401"})'
  }
});

你解决了吗?我被卡住了。不,对不起,我没有我只是放弃了节点太难了!