Ich schreibe eine einzelne Seite Web-App mit express
und react
.
Ich versuche jetzt, den Weg zur Authentifizierung meiner Benutzer zu wählen. sie registrieren und melden Sie sich an, lassen mit E-Mail und Passwort ein und 3rd-Party-Anbieter wie Facebook, Google etc
Ich möchte ...Wie Node Express mit Reisepass-Anbietern und JWT kombinieren?
las ich einige Artikel über passport
und jwt
(express-with-passport, jwt-with-passport), aber keiner von ihnen kombiniert jwt
und Drittanbieter.
Die einzige Art, wie ich denken konnte, ist die Tokens in meinem db zu speichern, und für jede Anforderung ihnen (Token durch eine dritte Partei und Token von mir mit jwt
erzeugt bereitgestellt)
Speichern der Token zum Vergleich von ein Provider in meinem db und vergleichen mit jeder Anfrage macht Sinn, aber mit jwt
Ich muss nur das Token verifizieren, ohne auf die db zuzugreifen.
Wie kann ich die Tokens unterscheiden, die ich vom Client erhalte? Wie kann ich feststellen, wann auf die db zugegriffen werden muss (für Provider-Tokens) und wann mit jwt
?
EDIT:
Die Art und Weise der Umsetzung ich darüber nachdachte, ist wie folgt:
- Nickname & Passwort: Nach der Anmeldung ein Token generiert (mit jwt
) und an den Client senden. Jede Anfrage enthält das Token und der Server wird es überprüfen.
- Drittanbieter: Nehmen wir an, der Benutzer wird mit Facebook
authentifiziert. Mein Server erhält das Token (passport-js
) von Facebook
. Jetzt muss ich dem Kunden sein Token senden. Ich könnte das Token senden, das ich gerade von Facebook bekommen habe, aber wie kann ich dann das Token überprüfen, das der Kunde mir später auf jede Anfrage schickt?
So könnte ich wieder ein Token mit jwt
generieren und funktionieren wie oben beschrieben.
Ist das eine gute Implementierung oder fehle ich etwas? Ich konnte ein vollständiges Tutorial nicht finden, das all diese Aspekte beschreibt.
versuchen Sie, mehr Beschreibung zu geben, was Sie nicht verstehen –