Как разработать аутентификацию для соответствия условиям Apple? - PullRequest
0 голосов
/ 28 апреля 2011

Я занимаюсь разработкой мессенджера для iOS.

Apple требует, чтобы пользователь прошел аутентификацию для ограничения анонимных сообщений

22.6 Приложения, которые разрешают анонимные или розыгрыши телефонных звонков или SMS / MMS-сообщения, будут отклонены

из руководящих принципов https://developer.apple.com/appstore/resources/approval/guidelines.html

Поэтому мне нужна аутентификация пользователя, аналогичная WhatsApp, которая может работать следующим образом:

  1. Пользователь вводит номер телефона.
  2. Номер телефонаотправляется на сервер.
  3. Сервер отправляет смс с 3 (или 4, не помню) цифровым кодом на этот номер.
  4. Пользователь вводит код.
  5. Код отправляется на сервер.
  6. Код проверен, и если он соответствует, пользователь проходит проверку подлинности.

Я подготовлен на стороне сервера.Единственное, что мне сейчас нужно, - это реализовать пользовательский интерфейс и процесс аутентификации на самом телефоне.Поскольку мое основное приложение готово, я хочу знать, как встроить аутентификацию в приложение.

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

Есть еще идеи или предложения?

1 Ответ

2 голосов
/ 01 мая 2011

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

Я бы сказал «нет» для повторной аутентификации пользователя при каждом запуске приложения, я бы, вероятно, использовал NSUserDefaults, как только они успешно аутентифицировались один раз, для хранения учетных данных, токена доступа или любой другой идентифицирующей информации, которая вам необходима Повторная проверка пользователя (без необходимости информировать пользователя о повторной аутентификации. В документации есть примеров того, как работать с NSUserDefaults, и она поможет вам в этом вопросе.

Суть этого подхода заключается в создании нового подкласса контроллера представления, который обрабатывает веб-аутентификацию (и осуществляет доступ к NSUserDefaults), а затем представляет ее модально через существующий контроллер представления.

Вы бы сделали что-то вроде следующего в вашем главном контроллере представления (или там, где вы хотите представить аутентификацию):

// ....
AuthViewController *authVC = [[AuthViewController alloc] init];
[self presentModalViewController:authVC animated:YES];
[authVC release];
// do your authentication from with AuthViewController
// ....

Тогда, каким бы способом он не означал, аутентификация завершена:

// ....
// note this is done within the AuthViewController
[self dismissModalViewControllerAnimated:YES];
// ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...