2017-10-31 2 views
1

Ich benutze Laravel Pass, um oauth zu erstellen.Konvertieren von Autorisierungscodes zu Zugriffstoken in Laravel funktioniert nicht

use Illuminate\Http\Request; 
Route::get('/redirect', function() { 
    $query = http_build_query([ 
     'client_id' => '3', 
     'redirect_uri' => 'http://127.0.0.1:8000/auth/callback', 
     'response_type' => 'code', 
     'scope' => '', 
    ]); 

    return redirect('http://127.0.0.1:8000/oauth/authorize?'.$query); 
}); 
Route::get('/auth/callback', function (Request $request) { 
    $http = new \GuzzleHttp\Client; 
    $response = $http->post('http://127.0.0.1:8000/oauth/token', [ 
     'form_params' => [ 
      'grant_type' => 'authorization_code', 
      'client_id' => '3', 
      'client_secret' => 'client_secret', 
      'redirect_uri' => 'http://127.0.0.1:8000/auth/callback', 
      'code' => $request->code, 
     ], 
    ]); 

    return json_decode((string) $response->getBody(), true); 
}); 

hier für Authorization Umleiten erfolgreich ist und während der Konvertierung Autorisierungscodes Zugriffstoken Guzzle mit der Seite hält mit heraus Laden hier keine Antwort zurück. Auch wenn CURL verwendet wird, wird false zurückgegeben. Aber beim Versuch von Post-Man oder CURL vom anderen Ziel gibt es gültige Daten zurück. Ist es ein Framwork/Paket Bug?

+1

versuchen Sie 'dd ($ response-> getBody())' und sehen Sie, was Sie bekommen – baig772

+0

nichts. es lädt und lädt weiter .... –

+0

Es geht wahrscheinlich in eine Art Endlosschleife. Überprüfen Sie die Protokolle – baig772

Antwort

0

Wahrscheinlich führen Sie Ihren Code auf PHP integrierten Webserver. Wenn ja, dann wird es nicht funktionieren, da es nur eine Anfrage gleichzeitig behandeln kann. Also, wenn Sie eine HTTP-Anfrage von einem lokalen Skript an ein anderes lokales Skript machen ... Dann haben Sie einen Deadlock.

Versuchen Sie stattdessen PHP-FPM lokal auszuführen.

Verwandte Themen