인증과 데이터 액세스의 비교

Facebook 로그인은 인증과 데이터 액세스라는 두 가지 중요한 혜택을 제공합니다. 이 두 가지 혜택은 상호 배타적이지 않습니다. Facebook 로그인을 사용하여 데이터 액세스를 계획하지 않고도 사용자를 인증할 수 있습니다. 이 경우 권한을 요청하거나 앱이 앱 검수를 거칠 필요가 없습니다.

인증과 데이터 액세스는 각각 정해진 기간만큼 유지됩니다. 그러나 인증과 데이터 액세스의 만료 기간은 여러 가지 요소에 따라 달라집니다.

인증

인증을 사용하면 사용자가 모바일 또는 웹 앱에 로그인하고 Facebook 자격 증명으로 계정을 만들 수 있습니다. 별도의 비밀번호를 만들거나 기억할 필요가 없습니다.

인증 만료

앱이 Facebook 로그인을 사용하여 누군가를 인증할 때는 사용자 액세스 토큰을 수신합니다. 앱이 Facebook SDK 중 하나를 사용할 경우 이 토큰은 약 60일간 유지됩니다. 그러나 SDK는 사용자가 앱을 사용할 때마다 토큰을 자동으로 새로 고침하므로 토큰은 마지막 사용 후 60일이 지나서 만료됩니다. 앱이 Facebook SDK를 사용하지 않을 경우 사용자 토큰을 수동으로 새로 고침하는 코드를 포함해야 합니다. 사용자 액세스 토큰이 만료되면 앱에서 사용자가 다시 로그인 플로를 거쳐야 합니다.

데이터 액세스

Facebook 로그인을 사용하면 사용자가 앱에 로그인할 때 권한을 요청할 수도 있습니다. 사용자가 이러한 권한을 부여하면 앱이 사용자 데이터 항목에 액세스할 수 있습니다. 예를 들어 앱에서 사용자 이름과 프로필 사진에 액세스할 수 있습니다.

앱이 권한을 요청할 때는 Facebook에서 데이터가 오용되는지 확인할 수 있도록 앱 검수를 거쳐야 하는 경우가 많습니다. 앱은 앱 검수를 거치지 않고도 사용자 이름 및 사진(기본 프로필 필드)과 이메일을 요청할 수 있지만 그 외 나머지 권한은 앱 검수가 필요합니다. 권한 리스트와 앱 검수가 필요한 권한에 대한 내용은 권한 참고 자료를 참조하세요.

데이터 액세스 만료

데이터 액세스의 만료 기간은 사용자가 마지막으로 활동한 시점을 기준으로 90일입니다. 해당 90일 기간이 만료되어도 사용자는 앱에 액세스할 수 있지만(즉, 인증 상태는 유지됨) 앱에서는 사용자 데이터에 액세스할 수 없습니다. 데이터 액세스 권한을 다시 얻으려면 앱에서 사용자에게 앱 권한을 다시 인증해달라고 요청해야 합니다.

Android용 Facebook SDK 또는 iOS용 Facebook SDK로 재인증을 요청하려면 LoginManager에서 reauthorizeDataAccess()를 호출하세요.

JavaScript용 Facebook SDK는 auth_type: 'reauthorize'를 사용합니다.

FB.login(function(response) {
  // Original FB.login code
}, { auth_type: 'reauthorize' })

웹의 경우 auth_type=reauthorize로 호출을 보냅니다.

다음의 권한은 만료되지 않습니다.

  • ads_read
  • ads_management
  • business_management
  • configure_page_transactions
  • pages_manage_ads
  • pages_manage_cta
  • pages_manage_instant_articles

  • pages_manage_engagement

  • pages_manage_metadata
  • pages_manage_posts
  • pages_messaging
  • pages_read_engagement
  • pages_read_user_content
  • pages_show_list
  • read_audience_network_insights
  • read_insights

사용자 데이터 액세스 만료 테스트

Android 및 iOS SDK에서 액세스 토큰 개체에 대해 dataAccessExpirationTime을 호출하면 앱의 사용자 데이터 액세스 권한이 만료되는 시점을 검색할 수 있습니다. 이 메서드는 데이터 액세스가 만료되는 시점을 지정한 데이터를 반환합니다.

또한 isDataAccessExpired를 호출하여 사용자 데이터 액세스가 만료되었는지 테스트할 수 있는데, 그 결과로는 부울이 반환됩니다.

서버 측에서는 debug_token 엔드포인트에서 해당 정보를 검색할 수 있습니다.

웹에서는 payload: data_access_expiration_time에서 만료 시간을 확인할 수 있습니다.

{
  status: 'connected',
  authResponse: {
    accessToken: '...',
    expiresIn:'...',
    reauthorize_required_in:'...',
    data_access_expiration_time: '...',
    signedRequest:'...',
    userID:'...'
  }
}

권한 만료

사용자의 마지막 접속 시점과 관계없이 앱이 권한을 90일 동안 사용하지 않으면 해당 권한이 만료될 수 있습니다. 앱 검수를 통해 승인된 권한이라도 만료됩니다.