Простое приложение mern с аутентификацией JWT ( здесь ) установлено с использованием приставки и создания-реакции-приложения. Я хочу добавить passport-steam в качестве метода аутентификации, однако я не уверен, как справиться с добавлением JWT в стратегию passport-steam. Вот что у меня есть:
// Steam
router.get('/steam', passport.authenticate('steam', { session: false }));
router.get(
'/steam/return',
passport.authenticate('steam', { session: false }),
(req, res) => {
const user = req.user
jwt.sign(
{ id: user.id },
'JWT_secret',
{ expiresIn: '2h' },
(err, token) => {
if (err) throw err;
res.json({
user: user,
token,
});
}
);
res.redirect('/')
}
)
Использование стратегии Steam по умолчанию. Это работает, и пользовательские данные добавляются в БД, но в локальном хранилище нет токена. Я не уверен, как это сделать с помощью steam, так как я не отправляю действие / не уверен, смогу ли я. Нужно ли проходить аутентификацию через Steam, захватывать и сохранять данные в базе данных, а затем отправлять другое действие, чтобы получить их и добавить JWT, или есть лучший способ?