J'ai un identifiant créé dans Express avec l'utilisation de Passport.js. Maintenant j'ai tout configuré et quand le nom d'utilisateur et le mot de passe sont corrects il redirigera vers la page d'utilisateur. Mais maintenant je veux montrer un message quand les informations d'identification sont incorrectes. En ce moment, elle conduit à une page blanche avec un message automatique de 'non autorisés'message d'échec de nom d'utilisateur ou de mot de passe dans Passport.js
Voici ma configuration passport.js:
app.js:
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/homeapp');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
app.use(require('express-session')({
secret: 'testtest',
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
var User = require('./models/User');
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
index.js
var express = require('express');
var router = express.Router();
var auth = require('../controller/AuthController.js');
router.get('/', auth.home);
router.get('/login', auth.login);
router.post('/login', auth.doLogin);
router.get('/logout', auth.logout);
module.exports = router;
Users.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var passportLocalMongoose = require('passport-local-mongoose');
var UserSchema = new Schema({
username: String,
password: String
}, {collection: 'userdata'});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model('User', UserSchema);
AuthController.js:
var mongoose = require("mongoose");
var passport = require("passport");
var User = require("../models/User");
var userController = {};
userController.home = function(req, res) {
res.render('index', { user : req.user });
};
userController.login = function(req, res) {
res.render('login');
};
userController.doLogin = function(req, res){
passport.authenticate('local')(req, res, function(){
res.redirect('/');
});
};
userController.logout = function(req, res) {
req.logout();
res.redirect('/');
};
module.exports = userController;
Si je le rappel ci-dessous, il me donne le message « Identifiants non valides » même si mon mot de passe est correct – Larsmanson
j'ai édité ma réponse pls vérifier encore – Sam
Thanx, cela a fonctionné pour moi :) – Larsmanson