Лучший способ достичь этого - создать несколько видов, позволяющих пользователю вводить номер телефона с кодом страны, который может использоваться сервером для отправки запроса на инициирование проверки OTP. Для этого вам необходимо:
- Создание контроллеров просмотра.
- Загрузить номер телефона и код страны на сервер.
- Подтверждение запросов путем проверки OTP.
Как отметил Дэн, вы можете использовать Digits в Fabric для этой цели, а также создавать собственные представления для большого UX.
С другой стороны, вы также можете использовать услугу под названием SendOTP от MSG91 - вы можете использовать ее для внутренних тестов и идей разработки, поскольку они предоставляют вам 5000 бесплатных сообщений OTP. Служба имеет полный набор API, которые вы можете реализовать на бэкэнде, а также в приложении. Кроме того, они предоставляют framework, так что вам не нужно создавать представления, но только presentViewController
и звоните delegate
, чтобы узнать, что произошло во время процесса проверки - например, Cancelled
или Verified
или Failed
.
Swift реализация тех же выглядит следующим образом:
class OTPFrame: UIViewController, sendOTPAuthenticationViewControllerDelegate {
func loadOTPFramework() {
SendOTP.sharedManager().startWithApiId("yourAppID")
let frameworkPath: NSString = NSBundle.mainBundle().privateFrameworksPath!
let frameworkBundlePath: NSString = frameworkPath.stringByAppendingPathComponent("SendOTPFramework.framework")
let frameworkBundle : NSBundle
= NSBundle(path: frameworkBundlePath as String)!
let authenticationViewController: AuthenticationViewController = AuthenticationViewController(nibName: "AuthenticationViewController", bundle: frameworkBundle)
authenticationViewController.delegate = self self.presentViewController(authenticationViewController, animated: true, completion: nil)
}
func authenticationisSuccessfulForMobileNumber(mobNo: String!, withCountryCode countryCode: String!) {
print("Success")
}
func canceledAuthentication() {
print("Cancelled")
}
func authenticationisFailedForMobileNumber(mobNo: String!, withCountryCode countryCode: String!) {
print("Failed")
}
}
Отказ от ответственности: Я ни в коей мере, одобрить услуги, упомянутые выше - вы можете выбрать то, что вам нравится.
Спасибо!
Возможно, вы должны сделать это на своем сервере. Приложение iOS отправляет запрос на бэкэнд. Backend генерирует случайный код. Бэкэнд отправляет SMS пользователю. Пользователь вводит код. Приложение iOS отправляется обратно на сервер для проверки. Вы можете использовать услугу Twilio для отправки SMS-сообщений (https://www.twilio.com/). – markwatsonatx