Как и где выполнить процесс входа в систему (в данном случае получение токена с сервера) в приложении iPhone? - PullRequest
0 голосов
/ 11 февраля 2010

Итак, что мне нужно сделать в моем приложении для входа - выполнить HTML-запрос с пользователем / pass, который возвращает XML с токеном. Токен используется в последующих HTTP-запросах.

Я знаю, как выполнять http-запросы, а также как их анализировать, я уже делал это только с токеном, жестко закодированным для тестирования. У меня также есть, как использовать настройки приложения, чтобы разрешить ввод и восстановление пароля через:

NSString* settingValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"<Setting Key>"]

Вопрос в том, хочу ли я, чтобы это происходило при запуске приложения, где мне это делать? Я не хочу, чтобы мое приложение зависало при запуске без обратной связи с пользователем, вы знаете, нет ли установленного пользователя / пароля или оно отклонено сервером. Какой твой совет? Спасибо

1 Ответ

0 голосов
/ 11 февраля 2010

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

IMO, если вы делаете это вделегату приложения может потребоваться несколько секунд для авторизации, и вы не сможете легко сообщить об этом пользователю.

Лучший способ справиться с аутентификацией - это использовать куки, так как вы используете запросы HTML.Вы можете получить эти куки, используя приложение NSHTTPCookieStorage в целом (не только в классе, который выполнял аутентификацию).Если вы хотите продолжить использовать свой токен, вы можете создать глобальную переменную в своем классе Application Delegate (myApplicationAppDelegate.h)

PS, я не буду хранить имя пользователя и пароль в NSUserDefaults, поскольку они хранятся в виде простого текстаУстройство.Вместо этого используйте брелок.

...