MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Facebook-paszport z JWT

Najlepszym rozwiązaniem tego problemu, jakie znalazłem, byłoby przekierowanie do oczekiwanej strony z plikiem cookie zawierającym token JWT.

Korzystanie z pliku res.json wyśle ​​tylko odpowiedź json i nie przekieruje. Dlatego druga sugerowana odpowiedź tutaj nie rozwiąże napotkanego przeze mnie problemu.

Więc moim rozwiązaniem byłoby:

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
});

Po przekierowaniu możesz bezpiecznie odczytać plik cookie i użyć tego tokena JWT zgodnie z oczekiwaniami. (możesz faktycznie odczytać plik cookie przy każdym załadowaniu strony, aby sprawdzić, czy użytkownik jest zalogowany)

Jak wspomniałem wcześniej, możliwe jest przekierowanie z JWT jako parametrem zapytania, ale jest to bardzo niebezpieczne. Korzystanie z pliku cookie jest bezpieczniejsze i nadal istnieją rozwiązania zabezpieczające, których można użyć, aby uczynić go jeszcze bezpieczniejszym, w przeciwieństwie do parametru zapytania, który jest po prostu niezabezpieczone.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose zapełnia zwracając pustą tablicę

  2. Łączenie się z bazami danych MongoDB

  3. Testowanie REST api zbudowanego przy użyciu Node.js(Express) na Travis CI

  4. Błąd:błąd sieci podczas próby uruchomienia polecenia „saslStart” na hoście „localhost:27017”

  5. Dlaczego MongoDB nie może użyć indeksu złożonego, który jest bardzo podobny (nie dokładny) do zapytania?