Най-доброто решение, което намерих за този проблем, би било пренасочване към очакваната страница с бисквитка, която съдържа JWT.
Използване на res.json
ще изпрати само json отговор и няма да пренасочи. Ето защо другият предложен отговор тук няма да реши проблема, който срещнах.
Така че моето решение би било:
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
session: false,
successRedirect : '/',
failureRedirect : '/'
}), (req, res) => {
var token = req.user.jwtoken;
res.cookie('auth', token); // Choose whatever name you'd like for that cookie,
res.redirect('http://localhost:3000'); // OR whatever page you want to redirect to with that cookie
});
След пренасочване можете безопасно да прочетете бисквитката и да използвате този JWT според очакванията. (всъщност можете да четете бисквитката при всяко зареждане на страница, за да проверите дали даден потребител е влязъл)
Както споменах преди, възможно е пренасочване с JWT като параметър на заявка, но е много опасно. Използването на бисквитка е по-безопасно и все още има решения за сигурност, които можете да използвате, за да го направите още по-безопасно, за разлика от параметър на заявка, който е явно несигурен.