Passport scheint eine großartige Option für einfache Authentifizierung zu sein, unaufdringlich und nicht schwer einzurichten. Ich baue einen MEAN-Stack, der mit JWT authentifiziert wird, also habe ich Passport JWT angeschaut. Allerdings gibt es ein paar Dinge, über die ich verwirrt bin.
1) Bin ich richtig davon ausgegangen, dass Passport JWT nur für die Authentifizierung von Anfragen verwendet wird, nicht für die Generierung eines gültigen JWT? Das heißt, sollte es nur für die Überprüfung der Anwesenheit eines Token verwendet werden?
2) Was ist der Unterschied zwischen passport.authorize
und passport.authenticate
? Und wann sollte ich eins über dem anderen benutzen?
3) Ich habe 3 Routen, die ich für Authentifizierungsfragen verwende, login
, signup
und authenticate
.
login
überprüft, ob die Kombination aus Benutzer-E-Mail und Kennwort existiert und erstellt dann ein Token für den Client.
signup
überprüft, ob die E-Mail bereits existiert und generiert dann ein Token für den Client.
Jetzt für authenticate
ist das, wo ich ein wenig durcheinander komme. Würde ich sogar eine authenticate
Route brauchen, wenn ich bereits login
und signup
habe? Wenn überhaupt, scheint es, als wäre die Authentifizierung die Funktion, die ich in passport.use
für die JWT-Strategie übergebe und dann login
und signup
mit der möglichen Hinzufügung einer verify_token
Route wäre meine einzige ungeschützte Route, wo alles ist else hätte einen Aufruf an passport.authenticate
oder passport.authorize
.
passport.authorize
gesehen, also glaube ich, dass passport.authenticate
das ist, wonach Sie suchen. passport.authenticate
ist das, was Sie in Ihren Routen verwenden werden, um zu überprüfen, ob eine eingehende Anfrage das JWT-Token besitzt und erlaubt ist. login
und signup
generieren, ist authenticate
überflüssig und überflüssig. Stellen Sie nur sicher, dass Sie passport.authenticate
in Ihren Routen verwenden, um den Zugriff während der Anfragen zu überprüfen. Die allgemeinen Einrichtungsschritte, die hier zu beachten sind, sind:
"Authorization: JWT eyJ0eXAiO..."
) für nachfolgende Anfragen vorhanden sein passport.authenticate
, um den Zugriff über das JWT-Token in der Kopfzeile für eingehende Anfragen zu überprüfen, wie zum Beispiel:
Tags und Links jwt passport.js mean-stack