Aucune réponse lors de l'utilisation d'un passeport local avec Sailsjs
-
21-12-2019 - |
Question
J'essaie d'implémenter un passeport local avec sailsjs et je ne reçois aucune réponse lorsque j'essaie de m'authentifier.Voici le code :
//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;
J'essaie de POST sur /login, mais les seuls messages de console que je reçois sont :
Midleware express pour passeport
connexionctrl
Cela signifie qu'il n'appelle pas le rappel LocalStrategy et j'obtiens l'erreur "0 NO RESPONSE".
Pourquoi donc?
La solution
Il y a quelque chose qui ne va pas dans la façon dont tu appelles passport.authenticate
ici:
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function(req, res) {
console.log('passport auth');
res.send("success");
}
passport.authenticate
renvoie une fonction qui est censée être appelée sur demande/réponse.
Voir ici quelques exemples d'intégration Sails/Passport :
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow