php - 페이지에서 - 페이스북 로그인 rest api




laravel passport 클라이언트 앱에서 액세스 토큰을 사용하여 사용자 데이터를 가져옵니다. (2)

Laravel documentation 에 따르면 서버 응용 프로그램 ( routes/api.php )에 경로를 추가해야합니다. $response->getBody();

Route::get('/user', function () {
    // authenticated user. Use User::find() to get the user from db by id
    return app()->request()->user();
})->middleware('auth:api');

quzzle을 통해 요청하십시오.

$response = $client->request('GET', '/api/user', [
    'headers' => [
        'Accept' => 'application/json',
        'Authorization' => 'Bearer '.$accessToken,
    ],
]);
echo $response->getBody();

Laravel Passport 문서를 사용하여 server.appclient.app 를 만들었습니다. 모든 것이 예상대로 작동합니다.

client.app 경로 :

Route::get('callback', function (Request $request) {
   $http = new GuzzleHttp\Client;
   $response = $http->post('http://server.app/oauth/token', [
    'form_params' => [
        'grant_type' => 'authorization_code',
        'client_id' => 3,
        'client_secret' => 'secret',
        'redirect_uri' => 'http://client.app/callback',
        'code' => $request->code
    ]
   ]);
   return json_decode((string) $response->getBody(), true)['access_token'];
});

기본적으로이 경로는 access_token을 반환하며 원하는대로 할 수 있습니다.

의뢰:

http://server.app/oauth/authorize?client_id=3&redirect_uri=http%3A%2F%2Fclient.app%2Fcallback&response_type=code&scope=

보고:

http://client.app/callback?code=access_token

의문:

client.app 에서 주어진 access_token을 사용하여 server.app에 올바른 요청을하는 방법 ( 예 : user emails ) .

데이터를 가져 오기 위해 http://server.app/api/user 요청을 사용해야합니까? 그렇다면 어떻게 할 수 있습니까? 가능한 경우 코드를 작성하십시오.

어떤 답변을 주셔서 감사합니다.


POSTMAN 크롬 앱에서 실행 해 보셨습니까? 그렇지 않은 경우 다운로드하십시오. https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=ko

정보를 입력하십시오.

데이터를 성공적으로 생성 한 후 오른쪽 상단의 CODE 버튼을 클릭합니다 (녹색으로 강조 표시됨).

마지막으로, 언어를 선택하고 코드를 복사하십시오. PHP의 경우 php cURL을 선택했습니다.

희망이 작동합니다.