Вы можете использовать механизм авторизации, такой как OAuth. Или вы можете построить свой собственный. Это может быть так же просто, как иметь секретный токен / ключ. И вы можете сделать его таким же простым или начать делать его более сложным (т. Е. Генерировать хеши с токеном и параметрами, чтобы не отправлять сам токен, а хэш, рассчитанный с токеном и параметрами запроса и т. Д.).
Однако нет способа сохранить в тайне жетоны API. Поскольку злоумышленник может декомпилировать ваше приложение, проанализируйте код и найдите свой ключ API. Вы можете проверить некоторые заголовки http, но подделать заголовки запроса очень просто. Поэтому вы не можете гарантировать, что запросы сделаны с устройства iOS.
Было бы замечательно, если бы Apple предоставила способ сохранить что-то во время процесса установки, которое подписано вашим сертификатом разработчика, или что-то подобное, чтобы вы могли сохранить что-то действительно секретное, которому вы можете доверять на устройстве iOS. Но, в конце концов, кто-то просто перехватит сетевой трафик, чтобы взломать вашу систему авторизации.
Таким образом, вы можете делать очень сложные вещи, но не можете гарантировать, что запросы всегда будут поступать с вашего устройства.