2017-04-06 7 views
1

Ich erhalte immer "Unauthenticated error", wenn ich Passport in meinem aktuellen Projekt verwende. Das ist, was ich tat, das dauert 3 Tage:Laravel 5.3 + Passport: immer nicht authentifizierter Fehler

  • Installieren und Konfigurieren von Passport (als docs sagt)
  • Antrag ein Token (Passwort Bewilligungstoken) mit Postman
  • Antrag eine geschützte Route (Auth: api Middleware) mit dem Token
  • Get `{ "error": "Nicht authentifiziert." "Nicht authentifizierte.":} `
  • suchen und suchen und Forschung
  • ` { "error" Get } `

Dann habe ich eine frische L5.3 und einen frischen DB installiert und funktioniert einwandfrei. Sogar mit meiner aktuellen DB!

ich alle Lösungen versucht haben, die ich ohne Erfolg ... gefunden

Kann mir jemand helfen? Irgendeine Idee würde geschätzt werden.

Danke.

Antwort

1

Ich hatte das gleiche Problem wie du und suchte überall nach einer Lösung.

Es schien Apache in meinem Fall schuld. Apache löschte den Header "Authorization: Bearer TOKEN_HERE", so dass die auth: api nicht wie erwartet funktionierte (401 wurde nicht autorisiert).

Am Ende haben wir versucht, unsere .htaccess und fügte hinzu:

RewriteCond %{HTTP:Authorization} ^(.*) 

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 

Und es hat funktioniert magisch.

Ich hoffe wirklich, dass es hilft, verbrachten wir einen ganzen Tag viele Lösungen ausprobiert, das ist die eine, die für uns gearbeitet.

+0

Ist nicht mit mir arbeiten – vietnguyen09

1

Welche grant_type haben Sie dieses Token zu erzeugen, verwendet?

Mögliche Lösungen sind wie folgt

1: Wenn Sie Client-Anmeldeinformationen verwenden, um Ihre access_token zu erzeugen, können client_credentials abbiegen, Middleware wie folgt.

1.1 In der routeMiddleware in \ App \ Http \ Kernel.php

'client_credentials'  => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class, 

1,2 Use 'client_credentials' Middleware in der Route zu.

Route::group(['prefix' => 'v1','middleware' => 'client_credentials'], function() { 

    // Your routes here 

}); 

2: Für Grant Typ Passwort

2.1: Erstellen Sie ein Passwort Grant-Client-

php Handwerkers Pass: client --password

2.2: Fordern Sie ein Token mit folgenden Header-Felder

'grant_type' => 'password', 
    'client_id' => 'client-id', 
    'client_secret' => 'client-secret', 
    'username' => '[email protected]', 
    'password' => 'my-password', 

Endpunkt/oauth/Token

Das Token Sie jetzt bekommen, sollten Sie den Zugriff auf Ihre api geben.

Verwandte Themen