webentwicklung-frage-antwort-db.com.de

Laravel Passport vs JWT vs Oauth2 vs Auth0

Verwirrung über API-Authentifizierungstypen in Laravel?

Ich lerne gerade, wie man eine API in Laravel erstellt, und fand mich in diesen verwirrenden Konzepten wieder. Nach ein paar Tagen Recherche und Übung konnte ich endlich genug verstehen, um einen Mini zu erstellen Ich musste viele separate Webseiten untersuchen, um die Beziehung zwischen ihnen nach besten Kräften zu erklären.

17
Luis Lopez

Was sind diese Konzepte?

  • Passport ist ein offizielles Laravel Paket, das Oauth2 und JWT implementiert.
  • Auth ist ein Authentifizierungs- und Autorisierungsdienst. Es ist eine Art "All-in-One" -Lösung für die API-Authentifizierung. Es implementiert standardmäßig JWT und kann Oauth2 sowie viele andere Protokolle implementieren.
  • OAuth2 ist ein Autorisierungsframework oder -protokoll, das Anwendungen (die Sie erstellen werden) den eingeschränkten Zugriff auf Benutzerkonten wie Facebook, GitHub usw. ermöglicht. Stellen Sie sich vor, Ihre App wurde groß genug, um ein "Anmelden mit APP NAME HERE" anzubieten oder anderen Anwendungen von Drittanbietern eingeschränkten Zugriff auf Ihr Benutzerkonto zu gewähren. Mit Oauth2 können Sie dies unter vielen anderen Dingen erreichen.
  • JWT ist ein Token-Format. Mit anderen Worten, so werden Daten angeordnet, um ein Token zu erstellen. Ein anderes Token-Format wäre SWT.

Mit anderen Worten:

  • Pass implementiert -> Oauth2 und JWT.
  • Auth0 kann implementieren -> Oauth2 oder viele andere Protokolle wie LDAP, OPEN ID, etc ...
  • Oauth2 kann implementieren -> JWT oder andere Token-Formate wie SWT ...

Was solltest du verwenden?

Es wäre verrückt für einen Anfänger, eine eigene Oauth2-Implementierung zu erstellen, die mit Laravel kompatibel ist. Oauth2 raus. Wir haben nur drei Paketoptionen zur Verfügung. Passport , tymondesigns/jwt-auth und Auth .

Mit JWT (tymondesigns/jwt-auth package) können Sie einfach eine E-Mail- und Kennwortauthentifizierung erstellen. Wenn Sie Passport für eine grundlegende E-Mail- und Kennwortauthentifizierung verwenden, müssen Sie sich jedoch keine Sorgen über eine "Oauth2-Implementierung" machen, die sich auf die Leistung Ihrer App auswirkt (das ist nicht viel). Der Unterschied ergibt sich, wenn all diese einschüchternden Migrationstabellen und -routen von Passport generiert werden, aber mit ein wenig Übung werden Sie sie verstehen. Auth0 scheint ist schnell einzurichten, aber in einigen Anwendungsfällen kann es zu übertrieben sein, abgesehen davon, dass es nicht sicher genug ist, mit einem Community-Paket Laravel zu arbeiten.

Die eigentliche Übereinstimmung besteht zwischen Auth0 und Passport. Auth0 ist ein Schweizer Taschenmesser im Vergleich zu Passport. Sie hätten sofort ein wirklich gutes Dashboard, mit dem Sie alle Aspekte Ihrer API verwalten können. Von der Drittanbieterauthentifizierung bis zum Hinzufügen weiterer Apps (Mobil, Web, Desktop), die diese API nutzen können. Der Reisepass könnte mit einem empfindlicheren Messer verglichen werden. Es wurde speziell für Laravel entwickelt. Auf lange Sicht können Sie Ihr eigenes Nice und benutzerdefiniertes Dashboard implementieren, um Ihre API-Clients zu verwalten.

Fazit

Ich denke, dass die wirkliche Wahl zwischen Passport und Auth0 sein muss. Es hängt von Ihnen ab, ob Sie eine API in Laravel erstellen möchten, oder ob Sie mehr in die API-Welt als in Laravel eintauchen. In meinem Fall bevorzuge ich Passport als Auth0 und am Ende JWT. Die Gründe sind:

  • Ich arbeite gerne mit den offiziellen Laravel Paketen.
  • Abgesehen von den Routen und Tabellen, die meinem Projekt hinzugefügt wurden, ist dies nicht betroffen.
  • Wenn ich mit der grundlegendsten API-Authentifizierung anfangen und skalieren wollte, wäre das viel einfacher.

Wenn man immer noch über den letzten Punkt spricht, kann man sagen, dass die Auth0-Community klein ist. Es ist im Grunde. Aber es gibt auch großartige Kundenbetreuer.


Tutorials zu Passport und Oauth2

Die Erklärung der Token für Laravel und Oauth2 Docs ist möglicherweise etwas schwierig. Hier ist eine gute Erklärung von Passport (daher Oauth2) verschiedene Arten von Tokens und ihre Anwendungsfälle . Da ich den "Routen" -Teil des Tutorials nicht herausfinden konnte, würde ich den Tutorial-Teil nicht empfehlen.

Dies ist ein Good Passport Video Tutorial , das auch die App PostMan Chrome für API-Aufrufe verwendet. Für diejenigen unter Ihnen, die mit diesem API-Programm noch nicht vertraut sind, erleichtern Apps wie PostMan die Arbeit erheblich, als wenn Sie einen Linux-/Mac-Befehl "curl" verwenden. Sie können die komplette Serie oder nur den Passport-Teil ansehen. Im Moment stecke ich auf Video 4 fest. Hier ist meine derzeit ungelöst Stapelüberlauffrage .

Ressourcen

Viele der Ressourcen sind oben im Artikel verteilt, aber ich habe auch einige hier.

65
Luis Lopez