Ответ 1
UPDATE:
В Facebook теперь представлена документация/контрольный список безопасности: https://developers.facebook.com/docs/facebook-login/security/
У вас есть как минимум два варианта:
-
Отправляйте токен доступа на свой сервер и обрабатывайте все запросы в Facebook используя этот токен (если токен недействителен, вы получаете ошибку и просто передать его клиенту). = > Безопасно, но (немного) сложно.
-
Отделите связь между
- ваш клиент (приложение iOS) и API Facebook и
- ваш клиент и ваш сервер.
Ваше приложение будет обрабатывать все запросы API Facebook через SDK Facebook iOS, а затем передавать полученные данные, например, всем типам идентификаторов Facebook, на ваш Сервер. Такой подход абсолютно небезопасен без какого-либо шифрования; вы можете отправить некоторую криптографическую хэш-функцию на свой сервер и проверить ее с помощью ключа, хранящегося на вашем сервере и в приложении iOS. = > Этот метод (немного) проще реализовать, но менее безопасен, поскольку ключ может быть украден с помощью обратной инженерии. Кроме того, вам нужно будет проверить флажок "Я использую шифрование" при отправке приложения в хранилище приложений.
На самом деле это зависит от того, какой риск вы хотите предпринять, какие запросы вы делаете, какие у вас есть услуги и т.д.
Может ли сервер проверить, действителен ли токен доступа?
Да, посмотрите здесь: Проверка доступа к токену на стороне доступа к Facebook для iPhone