Как сохранить статус входа с веб-сервером в приложении для iPhone? - PullRequest
2 голосов
/ 05 октября 2009

Просто я хотел бы иметь приложение для iPhone, которое регистрируется на веб-сервере с введенными значениями имени пользователя и пароля, а затем поддерживает этот логин, чтобы пользователь мог отправлять данные POST на сервер.

Это проблема использования куки? Если да, то как выполнить проверку, чтобы убедиться, что пользователь вошел в систему?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Если у вас нет контроля над веб-сервером, и процесс входа в систему - вот что я сделал в одном из моих приложений:

[[NSString alloc] initWithContentsOfURL:someURL usedEncoding:&enc error:&error];

Этот метод уже использует файлы cookie, поэтому, если вы вошли в систему, вы останетесь в системе. Предполагая, что сервер сохраняет идентификатор сеанса в cookie, а идентификатор сеанса используется для идентификации сеанса пользователя (что является обычным способом будет реализовывать сайт).

Чтобы проверить, вошел ли пользователь в систему, просто проанализируйте получившийся веб-сайт. Большинство веб-сайтов будут перенаправлять ваш запрос на страницу входа, если пользователь ранее не входил в систему.

Чтобы уточнить услышать, шаги:

  1. Отправьте запрос на какой-то URL, который требует входа в систему
  2. Проверить результат
  3. Если результатом была страница входа -> отправить учетные данные пользователя и начать с 1.
  4. Разобрать результат
2 голосов
/ 05 октября 2009

Разве это не вопрос того, как ваш сервер обеспечивает действительность и долговечность логинов? Сервер может быть очень разборчивым и не позволять продолжить вход в систему, если он выглядит так, как будто он неактивен более десятков секунд, или если IP-адрес изменился. Некоторым серверам может быть безразлично, если вы предоставите правильные идентификаторы сеанса или транзакции. Тогда есть печенье. Все будет зависеть от сервера, к которому вы обращаетесь.

Когда вы говорите:

Если это так, как вы выполняете проверку подтвердить, что пользователь вошел в систему?

Вы говорите о том, как ваше приложение для iPhone проверяет или как сервер проверяет? Если с iPhone, он должен попробовать что-то быстрое, как вызов состояния, и если сервер запрашивает аутентификацию, то вы аутентифицируетесь. Если нет, в зависимости от сервера, вы можете предположить, что вы уже аутентифицированы.

Некоторые приложения часто выполняют аутентификацию, предполагая, что время входа в систему сервера истекло. Другие приложения не любят удерживать пароль пользователя, поэтому они пытаются сделать это очень редко, и когда им нужно, они отображают экран входа в систему, чтобы им не нужно было хранить пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...