Den bedste løsning, jeg fandt på det problem, ville være at omdirigere til den forventede side med en cookie, som indeholder JWT.
Brug af res.json
ville kun sende et json-svar og ville ikke omdirigere. Det er derfor, det andet foreslåede svar her ikke ville løse det problem, jeg stødte på.
Så min løsning ville være:
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
});
Efter omdirigering kan du læse cookien sikkert og bruge den JWT som forventet. (du kan faktisk læse cookien ved hver sideindlæsning for at kontrollere, om en bruger er logget ind)
Som jeg nævnte før, er det muligt at omdirigere med JWT som en forespørgselsparameter, men det er meget usikkert. Det er mere sikkert at bruge en cookie, og der er stadig sikkerhedsløsninger, du kan bruge til at gøre det endnu mere sikkert, i modsætning til en forespørgselsparameter, som er tydeligvis usikker.