Как получить доступ к сообщениям в готовых методах passport без flash / в приложении react?

#javascript #reactjs #express #passport.js #connect-flash

#javascript #reactjs #экспресс #passport.js #подключение-flash

Вопрос:

[Обновление] Вопрос теперь содержит необходимые детали, из-за которых автору удалось найти решение, и, следовательно, его следует повторно открыть для ответов.

Вопрос в названии. Есть ли способ использовать connect-flash в серверной части (express), чтобы сообщения были доступны в интерфейсном приложении react?

Моя локальная стратегия passport, я использую базу данных sqlite:

  passport.use(
        new LocalStrategy({ usernameField: 'name' },
        (name, password, done) => {
            //Match user
            db.get(`SELECT * FROM Users WHERE name = '${name}'`, (err, user) => {
                if(err) throw err;
                if(!user) {
                    return done(null, false, { msg : 'name not registered' });
                }
                //Match password
                bcrypt.compare(password, user.password, (err, isMatch) => {
                    if(err) throw Error;
                    if(isMatch) {
                        done(null, user);
                    } else {
                        done(null, false, { msg : 'Password incorrect' })
                    }
                });
            })
        })
    );
 

и мой маршрут / login:

 //Login Handle
usersRouter.post('/login', passport.authenticate('local'), (req, res ) => {
    res.json('Successfully authenticated.')
    }
);
 

Я читал, что я могу добавить параметры к этому маршруту в объекте, включая

 {
    failureFlash: true
}
 

но я просто не понимаю, как получить доступ к сообщениям (хранящимся в req.flash?) В моем интерфейсе react.

Комментарии:

1. да, есть. Не могли бы вы поделиться кодом, в котором вы определяете свою стратегию passport?

2. да, конечно! Я отредактировал вопрос, извините!

3. а также где вы используете функцию аутентификации паспортов?

4. также добавил его: D

5. passportjs.org/docs/downloads/html пожалуйста, прочтите раздел проверки обратного вызова из этой документации. Я бы с удовольствием помог вам с кодом, но я думаю, вы хотите понять, как работает эта чертова штука.