Ich versuche, Benutzer mit Pass-Pass-Dateien zum ersten Mal zu authentifizieren, aber ich habe Probleme, es zur Arbeit zu bekommen. Das ist also der entsprechende Code Ich arbeite mitPass-ID-Authentifizierung fehlgeschlagen
Index.js Routendatei
var express = require('express');
var router = express.Router();
var passport = require('passport');
var bcrypt = require('bcryptjs');
router.post('/', passport.authenticate('local', {
successRedirect: 'home',
failureRedirect: '/'
}));
app.js
// Authentication packages
var session = require('express-session');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var MySQLStore = require('express-mysql-session')(session);
var bcrypt = require('bcryptjs');
passport.use(new LocalStrategy(function(email, password, done) {
console.log(email);
console.log(password);
res.locals.connection.query('SELECT id, password FROM users WHERE email = ?', [email], function(err, user) {
console.log(user);
if (err) {return done(err)};
if (user.length === 0) {
done(null, false);
};
const hash = user[0].password.toString();
console.log(hash);
bcrypt.compare(password, hash, function(err, res) {
if (res === true) {
return done(null, {user_id: user[0].id});
} else {
return done(null, false);
}
});
});
}
));
Wenn ich geben Sie eine gültige E-Mail-Adresse und das Passwort, I don‘ Ich werde wie ich will nach Hause weitergeleitet. Stattdessen werde ich zurück zur Anmeldeseite geleitet. Das Gleiche passiert, wenn ich eine ungültige E-Mail-Adresse verwende. Ich sehe auch die E-Mail und das Passwort nicht, obwohl ich versuche, sie zu loggen, wenn ich das Login-Formular absende.
Kann mir bitte jemand hier helfen.
Wenn Sie die console.log nicht sehen, bedeutet dies, dass die gesamte Funktion, die Sie versuchen zu treffen, isn ist nicht getroffen. Das bedeutet, dass es jedes Mal fehlschlägt und Sie den Anmeldebildschirm erneut anzeigen. Finden Sie heraus, warum es Ihren Code nicht trifft, und Sie werden die Antwort finden, die Sie suchen. – zerohero
Hier ist ein Beispiel, durch das Sie überprüfen können, wo Sie möglicherweise einen Fehler machen: https://github.com/passport/express- 4.x-local-example/blob/master/server.js – zerohero
Danke, dass ich darauf hingewiesen habe, leider bin ich jetzt seit 2 Tagen im Rennen und konnte es nicht herausfinden. Sollte ich stattdessen die Strategie von app.js in index.js verschieben? – Mena