Passport JWT & Authorize vs Authenticate

8

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 .

    
barndog 05.10.2015, 04:51
quelle

1 Antwort

4
  1. Richtig. Passport JWT (Pass-JWT) dient nur zur Authentifizierung von Anfragen. Sie benötigen ein anderes Tool, um ein Token zu generieren. Dieses Tutorial verwendet JWT Simple (jwt-simple) und ich habe jsonwebtoken (pro diese Referenz ).
  2. Ich habe keine Referenzen zu 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.
  3. Da Sie ein Token über 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:

  • pass-jwt dient zur Authentifizierung
  • Sie benötigen ein anderes Tool zum Erstellen eines JWT-Token
  • Das JWT-Token, das Sie generieren und zu dem zurückgeben, für das die Anfrage erstellt wurde, muss in der Kopfzeile ( "Authorization: JWT eyJ0eXAiO..." ) für nachfolgende Anfragen vorhanden sein
  • Sie müssen Ihre JWT-Strategie einrichten und dem Reisepass mitteilen, sie zu verwenden
  • Verwenden Sie passport.authenticate , um den Zugriff über das JWT-Token in der Kopfzeile für eingehende Anfragen zu überprüfen, wie zum Beispiel:

%Vor%
    
user3006381 25.04.2016 15:41
quelle

Tags und Links