Вопрос

Я пытаюсь реализовать паспорта - локальный с парусниками, и я не получаю никакого ответа при попытке аутентификации.Вот код:

//config/passport.js

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

module.exports = {
    express: {
        customMiddleware: function(app){
            console.log('Express midleware for passport');
            app.use(passport.initialize());
            app.use(passport.session());
        }
    }
};

passport.serializeUser(function(user, done) {
    done(null, {omar: "omar"});
});

passport.deserializeUser(function(id, done) {

        done(null, {omar: "omar"});

});

passport.use(new LocalStrategy(
    function(username, password, done) {
        // asynchronous verification, for effect...
        process.nextTick(function () {

                return done(null, {user: "omar"});

        });
    }
));
.

_

//LoginController.js
var passport = require('passport');
var loginController = {


    login: function(req, res){
        //res.json(req.param('username'));
        console.log('loginctrl');

        passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
            function(req, res) {
                console.log('passport auth');
                res.send("success");
            }


    },

  /**
   * Overrides for the settings in `config/controllers.js`
   * (specific to LoginController)
   */
  _config: {}


};


module.exports = loginController;
.

Я пытаюсь выложить на / логин, но единственные консольные сообщения, которые я получаю:

Express Midleware для паспорта
lancktrl

означает, что это не вызывает LocalStrategy Callback, и я получаю сообщение «0 нет ответа». Почему это?

Это было полезно?

Решение

Есть что-то не так с тем, как вы называете passport.authenticate здесь:

passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
            function(req, res) {
                console.log('passport auth');
                res.send("success");
            }
.

passport.authenticate Возвращает функцию, которая должна называться запросом / ответом.

См. Здесь для некоторых примеров интеграции парусов / паспорта:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top