REST -API -Authentifizierung mit Laravel Sanctum

REST -API -Authentifizierung mit Laravel Sanctum

Die Authentifizierung ist ein wesentlicher Bestandteil eines jeden Laravel -Projekts. In Laravel gibt es viele Pakete zur Implementierung der REST -API -Authentifizierung, wie Passport, Sanctum, JWT usw. Laravel Sanctum ist ein einfaches und leichtes Laravel-Paket zur Implementierung eines REST-API-Authentifizierungssystems für mobile Anwendungen, einseitige Anwendungen (SPAS) und Token-basierte APIs. Es kann mehrere API-Token für die Benutzer generieren, und die einseitige Anwendung kann über die Sitzung des Benutzers authentifiziert werden. Es kann als Alternative zur Passport -API von Laravel verwendet werden. Laravel Sanctum ist in vielen Fällen besser als Laravel Pass. Es ist einfacher als Laravel Passport und erfordert keine OAuth2 -Authentifizierung wie die Passauthentifizierung. In diesem Tutorial wurden die Möglichkeiten zur Implementierung der Laravel Sanctum -Authentifizierung und der Überprüfung der Rest -API mit Postman.

Voraussetzungen:

Sie müssen die folgenden Aufgaben ausführen, bevor Sie die Schritte zur Implementierung des Laravel Sanctum -Authentifizierungssystems beginnen.

Erstellen Sie ein neues Laravel -Projekt mit dem Namen SanctumProject. Hier das Komponist wurde verwendet, um das Laravel -Projekt zu erstellen. Wenn der Komponist Es wird vorher nicht installiert, Sie müssen es installieren, bevor Sie den folgenden Befehl ausführen.

$ Composer Create-Project Laravel/Laravel SanctumProject

Gehen Sie zum Projektordner.

$ cd sanctumProject

Alle Beispiele für dieses Tutorial wurden in Laravel Version 9 getestet+. Überprüfen Sie die installierte Version von Laravel.

$ php Artisan -Version

Führen Sie die folgenden Befehle aus, um die zu installieren und auszuführen Briefträger.

$ sudo snap installieren Sie Postbote

Setup -Datenbank:

Sie müssen eine Datenbank in MySQL erstellen, um die Authentifizierungsaufgabe zu implementieren. Füllen Sie die folgenden Aufgaben aus, um eine Datenbank zu erstellen und die Datenbank für das Laravel -Projekt einzurichten.

  1. Führen Sie den folgenden SQL -Befehl aus, um eine Datenbank mit dem Namen zu erstellen l_sanctum Aus der MySQL -Eingabeaufforderung.
MySQL> Datenbank erstellen l_sanctum;
  1. Öffne das .Env -Datei des Laravel -Projekts und initialisieren Sie die Werte für die folgenden Informationen basierend auf der Datenbank.
DB_CONNECTION = MYSQL
Db_host = localhost
Db_port = 3306
Db_database = l_sanctum
Db_username = 'Benutzername'
Db_password = 'Passwort'

Installieren und Einrichten von Laravel Sanctum:

Sie müssen die folgenden Aufgaben ausführen, um den Laravel Sanctum zu installieren und einzurichten.

Führen Sie den folgenden Befehl zum Herunterladen der erforderlichen Dateien aus, um das Laravel Sanctum -Paket zu installieren.

$ Composer benötigt Laravel/Sanctum

Führen Sie den folgenden Befehl aus, um die Sanctum -Konfiguration zu veröffentlichen.

$ php Artisan Anbieter: Publish -provider = "Laravel \ Sanctum \ SanctumServiceProvider"

Die folgende Ausgabe erscheint nach der Veröffentlichung der Heiligtum Paket erfolgreich.


Die Migrationsdatei für die Benutzer Die Tabelle wird standardmäßig beim Erstellen des Laravel -Projekts erstellt. Führen Sie den folgenden Migrate -Befehl aus, um das zu erstellen Benutzer Tabelle zur Authentifizierung.

$ php Artisan migrieren

Setup Middleware:

Um das Heiligtum zu verwenden, müssen Sie die folgende Zeile in die 'hinzufügenAPI'Abschnitt der Kernel.Php Datei. Öffne das Kernel.Php Datei aus dem Speicherort, App/HTTP/Kernel.Php, und fügen Sie die Linie hinzu.

\ Laravel \ Sanctum \ http \ Middleware \ scheffeFrontendRequestSarestatelful :: Klasse,

Der 'API'Abschnitt dieser Datei wird wie das folgende Bild aussehen.

Erstellen Sie die API:

Gehen Sie zum Projektordner und führen Sie den folgenden Befehl aus, um den Controller für die API -Authentifizierung zu erstellen. AuthController.Die PHP.

$ Php Artisan Make: Controller AuthController

Öffne das AuthController.Php und ersetzen Sie den Inhalt durch das folgende Skript. Der Register () Funktion wurde im Skript verwendet, um die Daten des übermittelten Benutzers zu validieren und die gültigen Daten in die Benutzertabelle einzufügen. Die Funktion login () wurde im Skript verwendet, um den Benutzer zu authentifizieren, indem die Anmeldeinformationen für die Anmeldung überprüft werden.

Namespace App \ http \ Controller;
Verwenden Sie Illuminate \ http \ request;
Verwenden Sie Illuminate \ Support \ Fassaden \ Hash;
Verwenden Sie Illuminate \ Support \ facades \ auth;
Verwenden Sie App \ Models \ Benutzer;
Class AuthController erweitert den Controller

öffentliches Funktionsregister (Anfrage $ request)
$ post_data = $ request-> validate ([
'Name' => 'Erforderlich | String',
'E -Mail' => 'Erforderlich | Zeichenfolge | E -Mail | Eindeutig: Benutzer',
'Passwort' => 'Erforderlich | min: 8'
]);
$ user = user :: create ([
'name' => $ post_data ['name'],
'E -Mail' => $ post_data ['E -Mail'],
'Passwort' => Hash :: make ($ post_data ['Passwort']),
]);
$ token = $ user-> createToken ('AuthToken')-> PlaintextToken;
return response ()-> json ([[
'access_token' => $ token,
'token_type' => 'Bearer',
]);

öffentliche Funktion Anmeldung (Anfrage $ request)
Wenn (!\ Auth :: Versuch ($ request-> nur ('E-Mail', 'Passwort')))
return response ()-> json ([[
'meldung' => 'Anmeldeinformationen sind ungültig.''
], 401);

$ user = user :: WHERE ('E-Mail', $ request ['mail'])-> firstorfail ();
$ token = $ user-> createToken ('AuthToken')-> PlaintextToken;
return response ()-> json ([[
'access_token' => $ token,
'token_type' => 'Bearer',
]);

Route für die API hinzufügen:

Öffne das API.PHP -Datei von dem Routen Ordner und fügen Sie die folgenden Zeilen hinzu. Die erste Zeile wurde verwendet, um die Authontroller -Informationen hinzuzufügen. Die zweite Zeile wurde verwendet, um die API -Route hinzuzufügen, um den Benutzer zu registrieren. Die dritte Zeile wurde verwendet, um die API -Route hinzuzufügen, um den registrierten Benutzer zu authentifizieren.

Verwenden Sie App \ http \ Controller \ AuthController;
Route :: post ('/register', [authController :: class, 'Register']);
Route :: post ('/login', [authController :: class, 'login']);

Testen der API -Authentifizierung mit Postman:

Führen Sie die Postman -Anwendung aus. Setzen Sie den Anforderungsart auf POST und schreiben Sie die folgende URL.

http: // 127.0.0.1: 8000/Register

Klicken Sie nach dem Hinzufügen der erforderlichen Parameter zum Registrieren eines neuen Benutzerkontos auf die Schaltfläche Senden. Wenn die neuen Benutzerinformationen erfolgreich in die Benutzertabelle eingefügt werden, wird eine Access_Token -Informationen wie das folgende Bild angezeigt.


Öffne das Benutzertabelle Aus der Datenbank durch Anmelden auf dem MySQL -Server oder dem Öffnen des MySQL Phpmyadmin Vom Browser, um zu überprüfen, ob neue Datensatze eingefügt wurden oder nicht in die Benutzertabelle. Das folgende Bild zeigt, dass ein neuer Benutzerdatensatz in die eingefügt wurde Benutzer Tabelle nach dem Senden der Daten mit der Verwendung der Briefträger Anwendung.


Jetzt können Sie die API -Authentifizierung mit dem Postboten überprüfen. Schreiben Sie die folgende URL in die Postman -Anwendung, nachdem Sie den Beitrag als Anforderungsart ausgewählt haben. Geben Sie die gültige E -Mail -Adresse und das gültige Passwort ein, um den vorhandenen Benutzer zu authentifizieren, und klicken Sie auf die Schicken Taste. Wenn die Informationen des bereitgestellten Benutzers gültig sind, die Zugangstoken Informationen erscheinen wie das folgende Bild. Die Fehlermeldung wird für die Informationen des ungültigen Benutzers angezeigt.

Abschluss:

Die einfache Möglichkeit zur Implementierung der API -Authentifizierung im Laravel -Projekt mit der Laravel -Projekt Heiligtum Paket wurde in diesem Tutorial gezeigt. Laravel -Benutzer erhalten das Konzept der API -Authentifizierung und können die Authentifizierung mit dem Postman nach dem Lesen dieses Tutorials implementieren und überprüfen.