Salut,

Je n'arrive pas a faire apparaitre des messages d'erreurs si il manque des champs ou si un username n'est pas bon, (sachant que sur ma page register les error msg marche) voici mon code :

File qui permet de faire afficher les erreurs : (nodejs)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
passport.use(new LocalStrategy(
    function(username, password, done) {
        User.getUserByUsername(username, (err, user) => {
            if(err) throw err;
            if(!user) {
                return done(null, false, {message : 'unknown user'});
            }
            User.comparePassword(password, user.password, (err, isMatch) => {
                if(err) throw err;
                if(isMatch) {
                    return done(null, user);
                } else {
                    return done(null, false, {message:'invalid apssword'});
                }
        })
    });
}));
 
router.post('/login',
passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login', badRequestMessage: 'Missing credentials !!' , failureFlash: true}),
(req, res) => {
    res.redirect('/');
})
et ma page html login :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<center>
 
<ul style="list-style-type: none;">
    <li>
        <a style="text-decoration:none;" href="/users/register">Signup</a>
        <a style="text-decoration:none;" href="/users/login">Login</a>
    </li>
</ul>
 
<h2>Login</h2>
{{#if errors}}
    {{#each errors}}
        <div>{{msg}}</div>
    {{/each}}
{{/if}}
<form method="post" action="/users/login">
    <div>  
        <input type="text" name="username" placeholder="Identifiant">
    </div>
    <div>
        <input type="password" name="password" placeholder="Mot de passe">
    </div>
    <button type="submit">Login</button>
</form>
 
</center>


Merci beaucoup à celui qui m'aidera