sql >> Databasteknik >  >> NoSQL >> MongoDB

Facebook-pass med JWT

Den bästa lösningen jag hittade för det problemet skulle vara att omdirigera till den förväntade sidan med en cookie som innehåller JWT.

Använder res.json skulle bara skicka ett json-svar och skulle inte omdirigera. Det är därför det andra föreslagna svaret här inte skulle lösa problemet jag stötte på.

Så min lösning skulle vara:

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äsa cookien säkert och använda den JWT som förväntat. (du kan faktiskt läsa cookien vid varje sidladdning, för att kontrollera om en användare är inloggad)

Som jag nämnde tidigare är det möjligt att omdirigera med JWT som en frågeparam, men det är mycket osäkert. Att använda en cookie är säkrare, och det finns fortfarande säkerhetslösningar du kan använda för att göra det ännu säkrare, till skillnad från en frågeparam som är uppenbarligen osäker.



  1. Redis Vs RabbitMQ som ett datamäklare/meddelandesystem mellan Logstash och elasticsearch

  2. Använda flera Mongodb-databaser med Meteor.js

  3. mongoose modell, array av strängar, array av objekt struktur

  4. Modellera undersamlingar i MongoDB Realm Sync