sql >> Databáze >  >> NoSQL >> MongoDB

Facebook-pas s JWT

Nejlepším řešením, které jsem našel pro tento problém, by bylo přesměrování na očekávanou stránku pomocí cookie, která obsahuje JWT.

Pomocí res.json odešle pouze odpověď json a nepřesměruje. To je důvod, proč by další navrhovaná odpověď nevyřešila problém, na který jsem narazil.

Moje řešení by tedy bylo:

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 přesměrování si můžete soubor cookie bezpečně přečíst a používat tento JWT podle očekávání. (cookie můžete číst při každém načtení stránky, abyste zjistili, zda je uživatel přihlášen)

Jak jsem zmínil dříve, je možné přesměrovat pomocí JWT jako parametru dotazu, ale je to velmi nebezpečné. Použití souboru cookie je bezpečnější a stále existují řešení zabezpečení, která můžete použít, aby bylo ještě bezpečnější, na rozdíl od parametru dotazu, který je zjevně nezabezpečené.



  1. Zkrátit sbírku

  2. Jak navrhnout vysoce dostupná databázová prostředí s otevřeným zdrojovým kódem

  3. Dotaz na umístění v okruhu v MongoDB

  4. Golang mgo získává prázdné předměty