Вход через 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 дней, срок его действия может истечь, даже если пользователь был недавно активен. Это правило действует, даже если разрешение было одобрено в процессе проверки приложения.