Heim  >  Artikel  >  PHP-Framework  >  Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)

Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)

不言
不言Original
2018-08-04 15:00:113507Durchsuche

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

Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)

7. Fügen Sie dann AuthServiceProvider bootPassport::roues();
8 hinzu. Ändern Sie abschließend die Datei Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text) 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 verarbeitendriverpassport
9. Testrouting api.php hinzufügenAusführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)

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');
    });
    });

Steuergerät hinzufügen

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(&#39;name&#39;));
        if(Auth::attempt([&#39;name&#39; => request(&#39;name&#39;), &#39;password&#39; => request(&#39;password&#39;)])) {            
        $user = Auth::user();            
        $this->content[&#39;token&#39;] =  $user->createToken(request(&#39;name&#39;))->accessToken;            
        $status = 200;
        } else {            
        $this->content[&#39;error&#39;] = "未授权";            
        $status = 401;
        }        
        return response()->json($this->content, $status);
    }    public function passport(){
        return response()->json([&#39;user&#39; => Auth::user()]);
    }    /**
     * 注册用户创建token
     */
    public function register(Request $request){
        $input = $request->all();        
        $validator = Validator::make($input, [
                    &#39;email&#39; => &#39;required|string|email|max:255|unique:users|min:4&#39;,            
                    &#39;password&#39; => &#39;required|string|min:6&#39;,
        ]);        
        if ($validator->fails())
         {            
            return response()->json([&#39;error&#39;=>$validator->errors()], 401);
        }        
        $input[&#39;password&#39;] = bcrypt($input[&#39;password&#39;]);        
        $user = User::create($input);        
        if( $user !==false){            
        $success[&#39;token&#39;] =  $user->createToken($input[&#39;name&#39;])->accessToken;            
        $success[&#39;email&#39;] =  $user->email;            
        $success[&#39;uid&#39;] =  $user->id;            
        return response()->json([&#39;error_code&#39;=>0,&#39;data&#39;=>$success], 200);
        }        
        return response()->json([&#39;error_code&#39;=>1,&#39;data&#39;=>$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 Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)

Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text)Test, um Benutzerinformationen zu erhalten: http://gems.com/api / v1/passport


Ausführliche Erläuterung des Authentifizierungsprozesses der Possport Api im Laravel-Framework (Bild und Text) Empfohlene verwandte Artikel:

So erstellen und verwenden Sie ein Laravel-Framework-Modellmodell

laravel5 .5 Wie teile ich Daten zwischen Ansichten im Framework? Zwei Methoden zum Teilen von Daten zwischen Ansichten (mit Code)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn