2017-04-10 3 views
9

ich derzeit 2 Projekte mit bin abzumelden. 1 Frontend (mit Laravel-Backend zur Kommunikation mit API) und ein weiteres Laravel-Projekt (die API).wie ein Benutzer von API Laravel Passport

Jetzt benutze ich Laravel Passport Benutzer zu authentifizieren und sicher, dass jeder API-Aufruf zu machen, ist ein autorisierter Anruf.

Nun, wenn ich mein Benutzer abmelden möchten, senden ich einen Post Anfrage an meine API (mit Bearer Token) und versuchen, ihn aus dem API einzuloggen (und klare Sitzung, Cookies, ...)

Dann auf dem Client ich aktualisiere meine Session auch so das Token ist nicht mehr bekannt. Wenn ich nun zur Anmeldeseite zurückkehre, meldet sich mein Benutzer automatisch an. (Oder mein Benutzer ist gerade noch angemeldet).

Kann jemand mir erklären, wie man richtig einen Benutzer mit Laravel Pass ausloggen?

Vielen Dank im Voraus.

+0

können Sie ein beliebiges Zeichen in HTTP-Header nach dem Abmelden sehen? –

Antwort

7

Sie müssen den Token aus der Datenbanktabelle löschen oauth_access_tokens Sie tun können, dass durch ein neues Modell wie OauthAccessToken

  1. Führen Sie den Befehl Erstellen php artisan make:model OauthAccessToken das Modell zu erstellen.

  2. Erstellen Sie dann eine Beziehung zwischen dem User Modell und dem neuen OauthAccessToken Modell erstellt, in User.php add:

    public function AauthAcessToken(){ 
        return $this->hasMany('\App\OauthAccessToken'); 
    } 
    
  3. in UserController.php, erstellen Sie eine neue Funktion zur Abmeldung:

    public function logoutApi() 
    { 
        if (Auth::check()) { 
         Auth::user()->AauthAcessToken()->delete(); 
        } 
    } 
    
  4. Im Router api.php neue Route erstellen:

    Route::post('logout','[email protected]'); 
    
  5. Jetzt können Sie durch den Aufruf von Abmeldung URL veröffentlichen /api/logout
+0

Was ist mit dem Refresh-Token zu tun? – QuietSeditionist

Verwandte Themen