웹용 Facebook 로그인의 액세스 토큰

로그인 절차가 끝날 때 액세스 토큰이 생성됩니다. 이 액세스 토큰은 특정 앱에서 특정 사용자가 보낸 호출이라는 증거로써 모든 API 호출과 함께 전달됩니다.

Facebook SDK for JavaScript는 브라우저에서 자동으로 액세스 토큰 저장을 처리하고 로그인 상태를 추적하므로 개발자가 브라우저 자체에서 액세스 토큰을 저장하기 위해 조치를 취할 필요가 없습니다.

그러나 액세스 토큰을 가져와서 서버로 전달하면 서버에서 개발자 대신 호출을 보내는 것이 일반적인 패턴입니다. 브라우저에서 토큰을 가져오려면 FB.getLoginStatus()를 통해 반환된 response 개체를 사용할 수 있습니다.

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    console.log(response.authResponse.accessToken);
  }
});

이 토큰은 변수 길이의 불투명 문자열입니다.

또한 브라우저에서 생성된 액세스 토큰은 일반적으로 수명이 몇 시간에 불과하고 JavaScript SDK에서 자동으로 새로 고침된다는 것을 기억해야 합니다. 서버에서 호출을 보낼 경우 장기 실행 토큰(액세스 토큰 문서에서 자세히 설명)을 생성해야 합니다.

액세스 토큰 재확인

일반적으로 앱은 로그인 대화 상자의 응답이 이를 시작한 사람과 같은 사람이 보낸 것인지 확인해야 합니다. Facebook JavaScript SDK를 사용하는 경우 자동으로 확인하므로 아무것도 할 필요가 없습니다. 단, 브라우저에서만 호출을 보내야 합니다.

서버로 호출을 되돌려보내려고 할 경우 액세스 토큰이 서버에 도착했을 때 다시 확인해야 합니다. 액세스 토큰 재확인은 로그인 플로 수동 빌드에 대한 문서에서 다룹니다. app_iduser_id가 액세스 토큰 디버그 엔드포인트에서 예상한 것과 일치하는지 확인이 필요합니다.

API 호출 보내기

플로의 이 시점에서 사용자는 인증을 끝내고 로그인한 상태가 됩니다. 앱은 브라우저에서 사용자 대신 API 호출을 보낼 준비가 끝납니다. 브라우저에서 가장 쉽게 API 호출을 보내는 방법은 FB.api() 호출을 사용하는 것입니다. FB.api()는 자동으로 API 호출에 액세스 토큰을 추가합니다.

아래 코드는

FB.api('/me', function(response) {
    console.log(JSON.stringify(response));
});

ID와 이름을 포함한 배열을 반환합니다.

{
  "id":"101540562372987329832845483",
  "name":"Bob Smith"
}

액세스 토큰으로 서버 측 호출을 보내는 경우 서버에서 SDK를 사용하여 유사한 호출을 보낼 수 있습니다. PHP를 사용하여 웹 앱을 빌드하는 개발자가 많습니다. 서버 측 API 호출을 보내는 몇 가지 예시는 PHP SDK 문서에서 확인할 수 있습니다.

사용자의 앱 삭제 탐지

사용자는 앱 자체와 상호작용하지 않고도 Facebook.com에서 앱을 삭제할 수 있습니다. Facebook에서는 앱이 이를 감지하는 데 도움이 되도록 앱 삭제가 발생할 때마다 핑으로 보내는 승인 취소 콜백 URL을 제공할 수 있게 했습니다.

앱 대시보드를 통해 승인 취소 콜백을 활성화할 수 있습니다.