Ich befolgte die genauen Schritte in Laracast : What's New in Laravel 5.3: Laravel Passport implementiert api authentication
mit oauth2
.Laravel 5.3: Passport-Implementierung - {"Fehler": "invalid_client", "Nachricht": "Client-Authentifizierung fehlgeschlagen"}
Meine web.php
Datei im Client/Consumer-Projekt wie folgt aussieht:
use Illuminate\Http\Request;
Route::get('/', function() {
$query = http_build_query([
'client_id' => 2,
'redirect_uri' => 'http://offline.xyz.com/callback',
'response_type' => 'code',
'scope' => '',
]);
return redirect ('http://api.xyz.com/oauth/authorize?'.$query);
});
Route::get('/callback', function (Request $request){
$http= new GuzzleHttp\Client;
$response = $http->post('http://api.xyz.com/oauth/token',[
'form_params' => [
'grant_type' => 'authorization_code',
'client_id' => 2 ,
'client_secret' => 'tUGYrNeWCGAQt220n88CGoXVu7TRDyZ20fxAlFcL' ,
'redirect_uri' => 'http://offline.xyz.com/callback',
'code' => $request->code,
],
]);
return json_decode((string) $response->getBody(), true);
});
ich die Erlaubnis anfordern Seite bekommen, wo ich authorize
brauche meine Kunden zu ermöglichen, die api zuzugreifen. Aber, sobald ich autorisiere klicken, ich werde auf die Seite umgeleitet, wo es die folgende Meldung angezeigt:
{"error":"invalid_client","message":"Client authentication failed"}
Wie dieses Problem zu beheben?
Ich habe laravel/passport
nicht im Offline-Projekt installiert. Verpasse ich etwas? Ich habe gefolgt und implementiert, was genau in dem Video-Tutorial erwähnt wurde. Muss ich etwas anderes hinzufügen, das mir nicht bewusst ist? (Ich habe ein sehr grundlegendes Wissen über oauth2).
Wenn es hilft, versuche ich ein Offline-System zu implementieren, das regelmäßig Daten an ein Online-System sendet, wenn eine Internetverbindung besteht. Also dachte ich, ich kann eine api
erstellen und senden Sie post
Anfrage mit Informationen gespeichert werden.
Sind Sie sicher, dass Ihre client_id 2 ist? Ich habe das Tutorial nicht angesehen, aber normalerweise sind die oauth client_ids nicht die Autoinkrementwerte in db. – engvrdr
Ich habe auch die 'vue'-Komponenten implementiert und da kann ich die Liste der Kunden sehen, die ich mit ihren IDs habe, und damit bin ich mir sicher, dass ich einen Client mit der ID 2 habe. –