2017-10-31 8 views
1

laravel 패스포트를 사용하여 oauth를 생성하고 있습니다. 인증을 위해 리디렉션 여기 인증 코드 변환 laravel의 토큰에 액세스 할 수 없습니다.

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

은 성공하고 페이지가 여기에 어떤 응답을 반환 밖으로로드 유지 목구멍 사용하여 액세스 토큰에 인증 코드를 변환하는 동안. 내부에서 CURL을 사용하는 경우에도 false가 반환됩니다. 그러나 다른 위치의 게시자 또는 CURL에서 시도하는 동안 유효한 데이터를 반환합니다. 그것은 framwork/package 버그입니까?

+1

'dd ($ response-> getBody())'를 시도하고 – baig772

+0

을 얻지 못했습니다. 그것은 로딩과 로딩을 유지합니다 .... –

+0

아마 무한 루프가 될 것입니다. 로그 확인 – baig772

답변

0

아마도 PHP의 통합 웹 서버에서 코드를 실행합니다. 그렇다면 하나의 요청을 동시에 처리 할 수 ​​있기 때문에 작동하지 않습니다. 그래서 로컬 스크립트에서 다른 로컬 스크립트로 HTTP 요청을하면 ... 교착 상태가 발생합니다.

대신 PHP-FPM을 로컬로 실행하십시오.