Аутентификация и доступ к данным

Вход через Facebook предоставляет два основных преимущества: возможность аутентификации и доступ к данным. Эти функции не являются взаимоисключающими. Вы можете использовать вход через Facebook для аутентификации пользователей без доступа к их данным. В этом случае вам не потребуется запрашивать разрешения или отправлять свое приложение на проверку.

Срок действия аутентификации и права на доступ к данным ограничен. Для каждой функции он свой и зависит от нескольких факторов.

Аутентификация

С помощью аутентификации пользователи могут войти в ваше мобильное или веб-приложение и создать аккаунт, указав свои учетные данные Facebook. Им не придется создавать и запоминать новый пароль.

Срок действия аутентификации

При аутентификации пользователя через вход через Facebook ваше приложение получает маркер доступа пользователя. Если в приложении используется один из Facebook SDK, этот маркер действует около 60 дней. Так как SDK автоматически обновляет маркер каждый раз, когда пользователь входит в приложение, срок действия маркера истекает через 60 дней с момента последнего входа. Если вы не используете Facebook SDK, встройте в приложение код, который вручную обновляет маркер доступа. Если срок действия маркера истек, ваше приложение должно предложить пользователю войти заново.

Доступ к данным

Если пользователи входят в приложение с помощью входа через Facebook, вы также можете запросить у них разрешения. Если пользователь предоставит эти разрешения, вы получите доступ к тем или иным его данным. К примеру, ваше приложение может получить доступ к имени пользователя и фото его профиля.

Если приложение запрашивает разрешения, обычно оно должно пройти проверку. Это необходимо, чтобы мы были уверены, что данные пользователей не будут применяться в ненадлежащих целях. Для получения имени и фото пользователя (поля по умолчанию) и его адреса электронной почты проходить проверку необязательно, однако для остальных разрешений она необходима. Список разрешений и информацию о том, какие из них требуют проверки, см. здесь.

Окончание срока доступа к данным

Право на доступ к данным истекает через 90 дней после последней сессии пользователя. По окончании этого периода пользователь сможет продолжить работу с приложением, но приложение не будет иметь доступа к его данным. Чтобы вновь получить доступ, приложение должно повторно запросить разрешения у пользователя.

Чтобы повторно запросить разрешения с помощью Facebook SDK для Android или Facebook SDK для iOS, выполните вызов reauthorizeDataAccess() в LoginManager.

Если вы используете Facebook SDK для JavaScript, выполните вызов с помощью 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.

Проверка времени истечения доступа к данным пользователя

Используя Facebook SDK для Android или Facebook SDK для iOS, вы можете узнать, когда истекает срок доступа вашего приложения к данным пользователя. Для этого выполните вызов dataAccessExpirationTime для объекта маркера доступа. Метод вернет дату истечения срока.

Чтобы проверить, истек ли срок, можно также выполнить вызов isDataAccessExpired, который возвращает логическое значение.

На стороне сервера эту информацию можно получить с помощью конечной точки debug_token.

В веб-интерфейсе время истечения можно проверить с помощью payload: data_access_expiration_time.

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

Истечение срока действия разрешений

Если ваше приложение не использует разрешение в течение 90 дней, срок его действия может истечь, даже если пользователь был недавно активен. Это правило действует, даже если разрешение было одобрено в процессе проверки приложения.