Тип приложения Facebook: какой из них выбрать для мобильных и веб-сайтов?
в настройках приложения Facebook ☞ Расширенная Authentication аутентификация я могу выбрать "веб" или "родной/рабочий стол" в качестве типа приложения. Информационный пузырь говорит:
выберите только Native / Desktop, если вы являетесь родным приложением iOS или Android, устройство или настольное приложение
на самом деле я ни один из них, но мое приложение является родным приложением iOS, а также вкладкой страницы Facebook.
вопрос: какой тип приложения я должен выбрать?
Я сделал некоторые исследования и нашел следующее в Facebook Android Учебник (в разделе Устранение неполадок):
- Тип приложения Web vs Native / Desktop. Разве это имеет значение?: нет, это не вопрос. Однако рекомендуется использовать тип "Native / Desktop" для ваше приложение.
что это значит не важно? Это не имеет смысла для меня. Тогда почему у меня должен быть выбор?
Я сделал еще несколько исследований Так и нашли данное заявление by @Igy (инженер поддержки разработчиков на Facebook):
Если тип приложения установлен в "Native / Desktop", предполагается, что вы распределенный секретный ключ приложения с двоичным кодом, и, таким образом, приложение маркер доступа не является доверенным (и "getAccessToken" в PHP SDK будет работает только при входе реальных пользователей, он не может вернуться к маркеру приложения)
наконец-то я нашел это в Facebook документация:
Примечание: приложения, настроенные как собственные / настольные приложения, не будут возможность совершать вызовы API, для которых требуется приложение
access_token
.
Мне нужно сделать вызовы API, которые требуют маркера доступа из моего приложения вкладки страницы, поэтому мой вывод-выбрать " веб " в качестве типа приложения, хотя у меня есть собственное приложение iOS, использующее тот же идентификатор приложения, что и приложение вкладки страницы. Но будет ли это иметь какие-либо недостатки в приложении iOS?
1 ответов
TL; DR: используйте "web", если вы не помещаете секрет приложения в двоичный файл iOS / Android
основное различие (а также причина, по которой он говорит "это не имеет значения", а также дает рекомендацию) заключается в том, что если вы выбираете режим "родной/рабочий стол", предполагается, что вы распространяете двоичный файл приложения с секретом приложения, встроенным, и секрет приложения считается ненадежным.
в этой конфигурации вызовы API, которые используют секрет приложения (например, создание теста пользователи, делая вызовы API от имени самого приложения, такие как изменение настроек приложения, чтобы воскреснуть и т. д.) не будет работать.
Если вашему приложению не нужно использовать маркер доступа App secret / app, установка его на native / desktop повышает безопасность, поскольку для вашего приложения на один вектор атаки меньше.
Если вы распространяете секрет приложения с вашим кодом, вы должны использовать эту опцию, или пользователи могут легко определить секрет приложения и захватить само приложение.