Je rencontre un problème lorsque j'essaie de me connecter sans nom d'utilisateur ou mot de passe ma fonction passport.use
n'est pas appelée du tout.Passport.js n'appelant pas LocalStrategy si les champs sont vides
Ci-dessous est mon itinéraire de courrier express qui s'exécute passport.authenticate
.
app.post('/login', passport.authenticate('local-login', {
failureRedirect: '/login', // redirect back to the login page if there is an error
failureFlash: true // allow flash messages
})
Et ci-dessous est mon passport.use
qui devrait imprimer GOT HERE
chaque fois qu'il ya une demande de poste à /login
.
passport.use('local-login', new LocalStrategy({
// by default, local strategy uses username and password, we will override with email
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true // allows us to pass back the entire request to the callback
},
function(req, email, password, done) { // callback with email and password from our form
// find a user whose email is the same as the forms email
// we are checking to see if the user trying to login already exists
console.log("GOT HERE");
Cela fonctionne bien si email
et password
ont un certain type de valeur. Mais je voudrais que cette fonction soit appelée même s'il n'y a pas de valeur pour email
et password
afin que je puisse faire la gestion des erreurs personnalisées.
Comment puis-je y parvenir?
Est-ce vraiment la meilleure façon de le faire? Actuellement, toutes mes erreurs sont dans la fonction de passeport. Donc la séparer semble inintéressant. –
Vous pouvez trouver à partir du code source ici: https://github.com/jaredhanson/passport-local/blob/f82655aa220ad7d0fcd8b114a0303d3cf94b8d06/lib/strategy.js#L71 La première chose que 'authenticate' fonction n'est de vérifier s'il y a passowrd et le champ du nom d'utilisateur. Donc, je dirais que c'est la manière la plus simple. –
@CharlieFish c'est comme ça que passeport-local' fonctionne. Si vous voulez un comportement personnalisé, vous pouvez utiliser une stratégie comme ['passport-custom'] (https://github.com/mbell8903/passport- custom). – robertklep