Как спроектировать, выбрать SIM-карту и получить уникальный идентификатор в iOS при аутентификации? - PullRequest
0 голосов
/ 03 августа 2020

A) В android я могу получить сведения о SIM-карте и могу специально выбрать SIM-карту для отправки OTP с этой SIM-карты. У меня есть пример экрана, который можно реализовать в Android.

Я перешел по ссылке ios Как я могу получить подробную информацию о поставщике данных устройства (например, Verizon / AT&T) iphone программно?

https://developer.apple.com/forums/thread/9171 По этой ссылке мы не можем получить телефонные номера SIM-карты с устройства из-за политики конфиденциальности Apple

Как реализовать такой же экран в iOS? Приветствуются любые альтернативные идеи или помощь.

B) Как получить уникальный идентификатор для аутентификации?

В Android мы можем получить (IMEI + серийный номер SIM-карты) может использоваться для аутентификации, но в iOS все это ограничено из-за конфиденциальности. Вместо этого невозможно получить уникальный для каждого устройства UDID. Я знаю, что могу использовать для этого идентификатор поставщика:

UIDevice.current.identifierForVendor!.uuidString

Но, как сказано в документации: The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them.

Поскольку идентификатор поставщика изменяется, когда пользователь удаляет приложение. способ получить уникальный идентификатор, отличный от идентификатора поставщика, для аутентификации, который не меняется и является уникальным все время?

1 Ответ

2 голосов
/ 03 августа 2020

Как получить номер телефона на SIM-карте?

Как указано в вопросе, получить номер телефона невозможно из соображений безопасности. Я предлагаю вам иметь текстовое поле и позволить пользователю вводить числа, чтобы вы могли отправить sms для подтверждения

Как получить уникальный идентификатор для аутентификации?

Здесь у вас есть два варианта в зависимости от потребностей вашей цели развертывания:

  1. Apple предложила DeviceCheck framework в iOS 11. Ваше приложение должно использовать API-интерфейсы DeviceCheck для генерации эфемерного токена, идентифицирующего устройство. Ваш ассоциированный сервер объединяет этот токен с ключом аутентификации, который вы получаете от Apple, и использует результат для запроса доступа к битам для каждого устройства. Совершенно намеренно Apple, токены DeviceCheck не могут использоваться для идентификации конкретного c устройства. Но вы можете попробовать поиграть, чтобы получить уникальный идентификатор для состояния устройства iOS

  2. Создайте свой собственный уникальный идентификатор и сохраните его в цепочке ключей .

Ссылки

...