Laravel Pass Tutorial

Laravel Pass Tutorial
Mehrere Authentifizierungsfunktionen werden in Laravel Version 5 implementiert.2. Es sind verschiedene Authentifizierungssysteme erforderlich, um verschiedene Routen zu implementieren, die zeitaufwändig und ineffizient waren. Das gleiche Authentifizierungssystem kann für verwendet werden Netz Und API Durch die Verwendung einer tokenbasierten Authentifizierungsfunktion. Dieses Authentifizierungssystem ist jedoch für die Anwendung nicht sicherer. Jetzt kann das Authentifizierungssystem der Laravel -Anwendung durch die Verwendung des Neuen gesichert werden Reisepass Authentifizierungsfunktion von Laravel. Es verwendet zwei Env, die die Geheimnisse der Laravel Pass OAuth API sind. Dies sind api_client_id & api_client_secret. Ein Zugriffstoken generiert für jeden Benutzer, wenn Laravel -Pass verwendet wird, und ermöglicht es dem Benutzer, auf einige sichere Endpunkte zuzugreifen. Wie Sie ein sicheres API -Authentifizierungssystem erstellen können, indem Sie Laravel -Pass und Zugriff auf autorisierte Inhalte verwenden, werden in diesem Tutorial angezeigt.

Vorteile der Verwendung von Laravel Pass:

Das OAuth2 -Protokoll kann mithilfe des Laravel -Passworts in die Laravel -Anwendung integriert werden. Wenn der Benutzer Daten aus der Anwendung abrufen oder einfügen möchte, wird die Zugriffsanforderung von diesem Protokoll gesendet. Die Genehmigung wird dem Benutzer erteilt, indem der Benutzer für den Zugriff autorisiert wird. Einige wichtige Vorteile der Passauthentifizierung werden nachstehend erwähnt.

  • Die Passauthentifizierung der Pass ist besser als die Laravel -Standardauthentifizierung, da sie auch für die externe Stelle verwendet werden kann.
  • Eine normale API -Authentifizierung kann verwendet werden, um auf den Inhalt der Laravel -Site zuzugreifen, nur dort, wo sie implementiert ist. Die externe Site kann jedoch mit Erlaubnis des authentifizierten Benutzer und Tokens auf den Inhalt der Laravel -Site zugreifen.

Voraussetzungen:

Sie müssen die folgende Aufgabe erledigen, bevor Sie Laravel Pass für die Benutzerauthentifizierung installieren und verwenden.

  • Installieren Sie ein neues Laravel -Projekt
  • Datenbankverbindung einrichten

Installieren Sie Laravel Pass:

Führen Sie den folgenden Befehl vom Terminal aus, um das Laravel -Passpaket mit dem Komponisten zu installieren.

$ Composer benötigt Laravel/Pass

Sie müssen das erstellen Benutzer Tabelle in der Datenbank vor der Installation des Passpakets. Drei Migrationsdateien und a Benutzer Das Modell wurde automatisch generiert, wenn ein neues Laravel -Projekt erstellt wird. Einer von ihnen wird verwendet, um a zu erstellen Benutzer Tisch. Gehen Sie zum Ordner des Laravel -Projekts und führen Sie den folgenden Migrate -Befehl aus, um das zu erstellen Benutzer Tisch.

$ php Artisan migrieren

Führen Sie den folgenden Befehl aus, um das Passpaket für das Projekt zu installieren.

$ php Artisan Pass: Installation

Sie erhalten die folgenden Informationen, nachdem Sie Laravel Passport in Ihrem Projekt erfolgreich installiert haben. Hier werden zwei geheime Schlüssel erzeugt. Eins für Personal Access Client und eine andere für Passwort Grant Client.

Laravel -Passkonfiguration:

Öffne das Benutzer Modell, das sich am Standort befindet, App \ Modell.Php von einem Editor und ändern Sie das Modell wie unten. Hinzufügen Laravel \ passport \ hasapitokens Zu Beginn der Klasse und verwenden.

Namespace App;
Verwenden Sie Illuminate \ contracts \ auth \ mustVerifyEmail;
Verwenden Sie Illuminate \ Foundation \ Auth \ Benutzer als authentifizierbar;
Verwenden Sie Illuminate \ Benachrichtigungen \ notifikabel;
// hier hinzugefügt
Verwenden Sie Laravel \ passport \ hasapitokens;
Der Klassenbenutzer erweitert authentifizierbar

// hier geändert
Verwenden Sie Hasapitokens, notifikabel;
/**
* Die Attribute, die Massen zuordnen können.
*
* @var Array
*/
geschützt $ fillbar = [
"Name", "E -Mail", "Passwort",
];
/**
* Die Attribute, die für Arrays verborgen werden sollten.
*
* @var Array
*/
geschützt $ versteckt = [
'Passwort', 'Remember_token',
];
/**
* Die Attribute, die auf einheimische Typen gegossen werden sollten.
*
* @var Array
*/
geschützte $ casts = [
'E -Mail_verified_at' => 'DateTime' ',
];

Als nächstes offen App/Anbieter/AuthServiceProvider.Php Um die Routen zu registrieren, die zur Ausstellung und widerrufener Zugriffsstopps erforderlich sind. Passport :: Routes -Methode wird innerhalb der Boot -Methode von aufgerufen AuthServiceProvider. Ändern Sie den Inhalt der unten gezeigten Datei.

Namespace App \ Providers;
Verwenden Sie Illuminate \ Foundation \ Support \ Providers \ AuthorserviceProvider als ServiceProvider;
Verwenden Sie Illuminate \ Support \ facades \ Gate;
// Der Pass wird hier hinzugefügt
Verwenden Sie Laravel \ passport \ passport;
Klasse AuthServiceProvider erweitert ServiceProvider

/** Die Richtlinienzuordnungen für die Anwendung.
*
* @var Array
*/
geschützte $ Policies = [
'App \ model' => 'App \ Policies \ modelPolicy' ',
];
/**
* Registrieren Sie alle Authentifizierungs- / Autorisierungsdienste.
*
* @return void
*/
öffentliche Funktion boot ()

$ this-> registerPolicies ();
Pass :: Routes ();
Pass :: Tokensexpirein (jetzt ()-> Adddays (15));
Pass :: RefreshtoKensexpirein (jetzt ()-> Adddays (30));

Als nächstes offen config \ App.Php und fügen Sie die folgende Zeile in die Anbieter Array, um die erforderliche Klasse für die Verwendung von Laravel Pass einzuschließen.

Laravel \ Passport \ PassportserviceProvider :: Klasse,

Als nächstes offen config \ auth.Php und setzen Sie den Treiber der API auf Reisepass im Wachen Array unten gezeigt.

'Wachen' => [
'Web' => [
'Treiber' => 'Sitzung' ',
'Provider' => 'Benutzer',
],
'api' => [
'Treiber' => 'Pass' ',
'Provider' => 'Benutzer',
'Hash' => Falsch,
],
],

Controller zur Registrierung und Authentifizierung implementieren:

Sie müssen einen Controller für die Implementierung des Authentifizierungssystems über das Passpaket erstellen. Führen Sie den folgenden Befehl aus dem Projektstammordner aus, um zu erstellen Apicontroller.

$ php Artisan Make: Controller Apicontroller

Im nächsten Teil dieses Tutorials werden drei Methoden im Inneren hinzugefügt Apicontroller Um einen neuen Benutzer zu erstellen, einen Benutzer zu authentifizieren und die detaillierten Informationen eines authentifizierten Benutzers zu erhalten.

A. Registrieren

Ein neuer Benutzer kann in die erstellt werden Benutzer Tabelle durch Implementierung a registrieren() Methode. Fügen Sie den folgenden Code in den hinzu Apicontroller Um die Register -API zu implementieren. Die erforderlichen Feldwerte für die Erstellung eines neuen Benutzers werden durch das Argument abgerufen, $ Anfrage der Methode registrieren(). Validator Die Klasse wird verwendet, um die Feldwerte zu überprüfen, die gültig sind oder nicht auf den definierten Validierungsregeln basieren. Wenn der fehlschlägt () Die Methode gibt True zurück, dann wird eine Fehlermeldung im JSON -Format zurückgegeben. Wenn der fehlschlägt () Die Methode gibt False zurück, dann generiert ein Hash -Kennwort und neue Benutzerinformationen werden in die Benutzertable eingefügt. Ein Token wird generiert, nachdem der neue Benutzer erstellt wurde, und eine Erfolgsnachricht mit Token -Wert wird zurückgegeben.

öffentliches Funktionsregister (Anfrage $ Anfrage)

/** Validieren Sie die Daten mithilfe der Validierungsregeln
*/
$ validator = validator :: make ($ request-> alle (), [
'Name' => 'Erforderlich',
'E -Mail' => 'Erforderlich | E -Mail' ',
'Passwort' => 'Erforderlich',
]);
/** Überprüfen Sie, ob die Validierung fehlschlägt oder nicht
*/
if ($ validator-> fails ())
/** Rückgabefehlermeldung
*/
return response ()-> json (['error' => $ validator-> fehler ()]);

/** Speichern Sie alle Werte der Felder
*/
$ newUser = $ request-> alle ();
/** Erstellen Sie ein verschlüsseltes Passwort mit dem Hash
*/
$ newUser ['Passwort'] = Hash :: make ($ newUser ['Passwort']);
/** Fügen Sie einen neuen Benutzer in die Tabelle ein
*/
$ user = user :: create ($ newuser);
/** Erstellen Sie ein Zugriffstoken für den Benutzer
*/
$ success ['token'] = $ user-> createToken ('AppName')-> AccessToken;
/** Erfolgsnachricht mit Token -Wert zurückgeben
*/
return response ()-> json (['Erfolg' => $ Erfolg], 200);

B. Anmeldung:

Jeder Benutzer kann durch Implementierung authentifiziert werden die Anmeldung () Methode. Fügen Sie den folgenden Code darin hinzu Apicontroller Implementieren einer Login -API. Die erforderlichen Felder zur Authentifizierung eines Benutzers werden von der abgerufen $ Anfrage von die Anmeldung () Methode. versuchen() Die Methode überprüft die Werte von Email Und Passwort Für die Authentifizierung. Wenn die Werte mit den Werten der entsprechen Benutzer Tabelle dann wird der Aufzeichnung dieses bestimmten Benutzers abgerufen und ein Token -Wert wird zurückgegeben. Wenn die Authentifizierung fehlschlägt, dann ist eine Nicht autorisiert Nachricht wird zurückgegeben.

Login für öffentliche Funktion (Anfrage $ Anfrage)

/** Lesen Sie die vom Benutzer übergebenen Anmeldeinformationen
*/
$ zertifizieren sich = [
'E-Mail' => $ Anfrage-> E-Mail,
'Passwort' => $ request-> Passwort
];
/** Überprüfen Sie, ob die Anmeldeinformationen gültig sind oder nicht
*/
if (auth ()-> Versuch ($ Anmeldeinformationen))
/** Speichern Sie die Informationen des authentifizierten Benutzer
*/
$ user = auth :: user ();
/** Token für den authentifizierten Benutzer erstellen
*/
$ success ['token'] = $ user-> createToken ('AppName')-> AccessToken;
return response ()-> json (['Erfolg' => $ Erfolg], 200);
anders
/** Rückgabefehlermeldung
*/
return response ()-> json (['error' => 'nicht autorisiert'], 401);

C. Benutzerdetail

Sie können die detaillierten Informationen eines Benutzers nach der Authentifizierung durch die Implementierung der Benutzer -API erhalten. Fügen Sie den folgenden Code in den hinzu Apicontroller Um die detaillierten Informationen eines authentifizierten Benutzers abzurufen.

öffentliche Funktion user_info ()

/** Abrufen Sie die Informationen des authentifizierten Benutzers ab
*/
$ user = auth :: user ();
/** Die Details des Benutzers zurückgeben
*/
return response ()-> json (['Erfolg' => $ user], 200);

API -Route für den Controller:

Öffne das Routen \ App.Php Dateien Sie den Inhalt mit den folgenden Codes und ändern.

/** Route für Anmelde -API*/
Route :: post ('Login', 'apicontroller@login');
/** Route zum Register -API*//
Route :: post ('Register', 'apicontroller@register');
/** Route für Details Benutzer -API*///
Route :: Middleware ('Auth: API')-> Gruppe (function ()
Route :: post ('Details', 'apicontroller@user_info');
);

Führen Sie den folgenden Befehl aus, um den Laravel Development Server zu starten.

$ php Artisan servieren

Testen Sie die API -Authentifizierung mit Postman:

Postman ist ein sehr nützliches Instrument, um erholsame APIs zu testen. Die HTTP -Anforderung kann sehr einfach generiert werden, um API -Funktionen mithilfe der Benutzeroberfläche dieser Anwendung zu testen, ohne eine große Menge Code zum Senden von Anforderungen zu schreiben. Postman kann verschiedene HTTP -Anfragen und -versorgungsunternehmen zur Entwicklung von APIs behandeln. Es hat sowohl bezahlte als auch kostenlose Versionen für Linux.

Postman Agent installieren:

Führen Sie den folgenden Befehl vom Terminal aus, um einen Postmann -Agenten auf Ubuntu zu installieren.

$ sudo snap installieren Sie Postbote

Öffnen Sie die Anwendung nach der Installation. Die folgende Schnittstelle wird nach dem Öffnen des neuen Fensters des Postboten angezeigt.

Testregister -API:

Klick auf das Erstellen Sie eine Anfrage Link zum Öffnen des Anforderungsfensters. Der Laravel Development Server läuft am Port 8000 standardmäßig wird hier verwendet. Wenn Sie einen anderen Port verwenden, müssen Sie die Portnummer in Ihrer URL ändern. Die Postmethode wird aus der Dropdown-Down-Down-Methode ausgewählt und die folgende URL wird verwendet, um eine API-Anforderung für die Register-API zu senden.

http: // localhost: 8000/api/Register

Drei Felder werden als obligatorische Felder für die definiert Benutzer Tabelle zum Erstellen eines neuen Benutzers. Diese sind Name, Email, Und Passwort. Stellen Sie drei Schlüssel und Werte für diese unten gezeigten Felder fest und klicken Sie auf die schicken Taste. Der registrieren() Methode von Apicontroller wird gemäß der Route angerufen, wenn die Anfrage ordnungsgemäß gesendet wird.

Die folgende Antwort wird angezeigt, wenn der neue Benutzerdatensatz erfolgreich in die eingefügt wird Benutzer Tisch. Der Antwortcode, 200 Gibt an, dass die HTTP -Anforderung erfolgreich war und ein Token generiert wird.

Testen Sie Anmelde -API:

Wähle aus POST Methode wie die Registrieren Sie die API das wird vorher gezeigt. Legen Sie die folgende URL in der Adressleiste fest, um eine API -Anfrage für Anmeldung API zu senden.

http: // localhost: 8000/api/login

Zwei Felder sind obligatorisch, um jeden Benutzer basierend auf den Aufzeichnungen der Aufzeichnungen zu authentifizieren Benutzer Tisch. Diese sind Email Und Passwort. Stellen Sie zwei Schlüssel und Werte für diese unten gezeigten Felder fest und klicken Sie auf die schicken Taste. Der Anmeldung() Methode von Apicontroller wird gemäß der Route angerufen, wenn die Anfrage ordnungsgemäß gesendet wird.

Die folgende Antwort wird angezeigt, wenn der Benutzer erfolgreich auf der Grundlage der Aufzeichnungen der Aufzeichnungen authentifiziert wird Benutzer Tisch. Der Antwortcode, 200 zeigt an, dass die HTTP -Anfrage erfolgreich war. Der Token -Wert wird generiert, nachdem der Benutzer authentifiziert und die Antwortkörper im JSON -Format zurückgegeben wird.

Sie erhalten die folgende Antwortbehörde, wenn die falschen Anmeldeinformationen zur Authentifizierung des Benutzers bereitgestellt werden. 401 Der Fehlercode wird hier generiert, um einen unbefugten Zugriff anzuzeigen.

Testen Sie Benutzerdetails API:

Einige Headerparameter müssen vor dem Senden der Anforderung für Details API eingerichtet werden. Klick auf das Header Registerkarte des Anforderungsabschnitts und fügen Sie drei Header -Werte hinzu, um den authentifizierten Benutzer zu identifizieren. Der Token -Wert wird aus der Antwortkörper kopiert und für den Autorisierungswert festgelegt.

Akzeptieren: Anwendung/JSON
Inhaltstyp: Anwendung/JSON
Genehmigung:
eyj0exaioijkv1qilcjhbgcioijsuzi1nij9.EYJHDWQIOIIXIIWIANRPIJOINDU3OWUWNMEWZ
Je3ZwnmythHOTKXNDJKMMQWZDQXYZU4MGFIMDM3OTC4NTIWYZA4NTJJJZTK2MWU4NGFKYJE3ODU
wmzc3otiwmzk3owvmntkilcjpyxqioje1OTKYNZK3MTYSIM5IZII6MTU5OTI3OTCXNIWIZXHWI
JOXNJMWODE1NZE2LCJZDWIIOIIIIIIIIWIC2NVCGVZIJPBXX0.fjyvzfsid4wkcklpz2-
w64uvook1DQMO_KBLCI7C00XQKHUQUPVKGRULUX3E2MJIOJ8ET0MLNGPUIFTS8AET7W8KOQCCL
Szmkujot4fhonq5dyzmb4csaixfvokk8yrm4gpcq-b1ow5e9k5gcrlkmqnt9a6nywoghkxqq4GE
QHNHFGPNOKMFJBTGUKIJ3AMTA2I7QHCBWDIT5O970LDM1EHW-AUMESZFLJDJFN6ZKHK4KC93-
VLPZBGEKH1XD0P1FJEWYMS590OIPERUWVS1HFCKPSNIFYROB04TYPHDL25QWBW0M0VATQG9FH
7xgijfskys-fgmmuc7lglm8juevymzfv-o5xvrlq2eocjlhsofvkkufZw-j3yfkahbwy3OO4grd4
FOWV2TGVDNF1ZR_B11BDFDGV3RRL8MZNHX9DHJAFQUBWWEDSNZBWOUOR9WY
VH0GI1FCIKWOWSM_BONATFITTR9ZQJKIWRQTKS3KVQSNCF8NIKXLP2DGAXDD8MWYWOQ34NLYHHP
0U2try_BFFE3Y_ICGQVLBHCMEWDIXJISM8L9CTLODGRQA3WAQP11FV8CJFAIP2MFZ3UUVY6NDQAR
kv6zrq9oe4ncsqvxevp7rwofakpu7ecqnwvdoq4Hz5j9twx8bz5EYBMGHVRXKQKHEIE2J6GZT0-RBURFM

Der Abschnitt über den Header des Anforderungsteils wird wie das folgende Bild aussehen. Sie müssen Ihren Token -Wert festlegen, der in der Antwortkörper Ihres Postmanagers erzeugt wird.

Klicken Sie anschließend auf die Genehmigung Registerkarte des Anforderungsabschnitts und auswählen Trägertoken als Autorisierungstyp aus der Typ Dropdown-Liste.

Wählen Sie nun die aus POST Methode stellen Sie die folgende URL in der Adressleiste fest. Es wird das anrufen Benutzerinformation() Methode von Apicontroller Dadurch werden die detaillierten Informationen des authentifizierten Benutzers abgerufen.

http: // localhost: 8000/api/Details

Wenn die Token -Wert- und Header -Informationen ordnungsgemäß bereitgestellt werden.

Videoanleitung

Abschluss:

Die Passport -Authentifizierung verwendet jetzt auf vielen Laravel -Websites für ihre nützlichen Funktionen. Es macht das Laravel -Authentifizierungssystem sicherer als die Standardauthentifizierung und bietet andere Dienste, die in der Standardauthentifizierung nicht verfügbar sind. Die grundlegenden Verwendungen von Laravel Pass mit dem Installations- und Konfigurationsprozess werden in diesem Tutorial ordnungsgemäß beschrieben. Die Verwendung des Postman -Agenten wird hier ebenfalls gezeigt, um die API zu testen. Ich hoffe, der Leser wird die Funktionen des Passpakets nach dem Lesen dieses Tutorials verstehen.