Der Inhalt dieses Artikels besteht darin, Ihnen eine detaillierte Erklärung (Bilder und Text) des Zertifizierungsprozesses der Possport-API im Laravel-Framework zu geben. Der Inhalt ist sehr detailliert und hat einen gewissen Referenzwert Freunde in Not.
1. Laravel hat die Benutzerauthentifizierung über das traditionelle Anmeldeformular sehr einfach gemacht, aber was ist mit der API? APIs verwenden normalerweise Token zur Authentifizierung und behalten den Sitzungsstatus zwischen Anfragen nicht bei. Laravel verwendet Laravel Passport
, um die API-Authentifizierung zum Kinderspiel zu machen. Passport basiert auf dem von Alex Bilbie verwalteten League OAuth2-Server und kann in wenigen Minuten eine vollständige OAuth2-Serverimplementierung für Laravel-Anwendungen bereitstellen.
2. Installieren Sie
composer require laravel/passport
3. Registrieren Sie als Nächstes den config/app.php
-Dienstanbieter im providers
-Array der Konfigurationsdatei Passport
:
Laravel\Passport\PassportServiceProvider::class,
4. Die Passport-Migration generiert eine Datentabelle für die Anwendung zum Speichern von Clients und Zugriffstokens (Speicherort der Migrationsdatei/Anbieter/Laravel/Passport/Datenbank) (zugehörige Tabellen erstellen)
php artisan migrate
5. Erstellen und generieren Sie den Sicherheitsschlüssel und privater Zugang und Passwort, die für den Zugriff auf das Zugriffstoken für den Zugriff auf den Client verwendet werden.
php artisan passport:install
Hinweis: Hier liegt ein Problem vor, das heißt, wenn Sie sich registrieren und die Proxy-Registrierungsschnittstelle erneut verwenden, wird ein Fehler gemeldet. Führen Sie es einfach erneut aus php artisan passport:install
und es ist in Ordnung
6. Trait
Diese Eigenschaft wurde zum AppUser
-Modell hinzugefügt und stellt diesem Modell einige Hilfsfunktionen zur Überprüfung und Verwendung des Tokens des authentifizierten Benutzers zur Verfügung.
Laravel\Passport\HasApiTokens
7. Fügen Sie dann AuthServiceProvider
boot
Passport::roues();
8 hinzu. Ändern Sie abschließend die Datei Das Autorisierungsschutzelement (
) im Teil config/auth.php
wird in api
geändert. Durch diese Anpassung kann Ihre Anwendung den TokenGuard von Passport verwenden, um eine API-Autorisierungsanfrage zu verarbeitendriver
passport
9. Testrouting api.php hinzufügen
Route::group(['namespace'=>'api'], function(){ // 无需认证路由 Route::match(['get','post'],'/login', 'UserController@login')->name('login'); Route::post('/register', 'UserController@register'); // 需认证路由 Route::group(['middleware' => 'auth:api'], function(){ Route::get('/v1/passport', 'UserController@passport'); }); });
php artisan make:controller ApiUserController
<?php namespace App\Http\Controllers\Api; use App\User; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; class UserController extends Controller{ public function __construct(){ $this->content = array(); } public function login(){ //dd(request('name')); if(Auth::attempt(['name' => request('name'), 'password' => request('password')])) { $user = Auth::user(); $this->content['token'] = $user->createToken(request('name'))->accessToken; $status = 200; } else { $this->content['error'] = "未授权"; $status = 401; } return response()->json($this->content, $status); } public function passport(){ return response()->json(['user' => Auth::user()]); } /** * 注册用户创建token */ public function register(Request $request){ $input = $request->all(); $validator = Validator::make($input, [ 'email' => 'required|string|email|max:255|unique:users|min:4', 'password' => 'required|string|min:6', ]); if ($validator->fails()) { return response()->json(['error'=>$validator->errors()], 401); } $input['password'] = bcrypt($input['password']); $user = User::create($input); if( $user !==false){ $success['token'] = $user->createToken($input['name'])->accessToken; $success['email'] = $user->email; $success['uid'] = $user->id; return response()->json(['error_code'=>0,'data'=>$success], 200); } return response()->json(['error_code'=>1,'data'=>$input], 401); } }
11. Führen Sie einen einfachen Test über den Postboten durch, um das Token zu erhalten
Registrierung:Schnittstellenadresse: http://gems.com/api/ registrieren
Anmelden: http://gems.com/api/login
Test, um Benutzerinformationen zu erhalten: http://gems.com/api / v1/passport
Empfohlene verwandte Artikel:
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!