Как реализовать вход и выход из приложения - PullRequest
1 голос
/ 22 января 2012

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

[request setuserName:@"usernameString"];
[request setpassword:@"Passwordstring"];

Но я не знаю, был ли создан какой-либо сеанс или нет. Поэтому во время выхода из системы я только перенаправляю контроллер на экран входа в систему и оставляю поле userName и пароль пустым.

Но после выхода из системы он снова вводит неверные имя пользователя и пароль.

Мой вопрос:

  1. Должен ли я создавать сеанс во время входа в систему и время ожидания сеанса во время выхода из системы. Как это сделать?

  2. В приложении iphone, как обычно выполняется вход и выход?

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

Спасибо всем. Эта проблема решена.

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

Но теперь, во время выхода, я удаляю cookie, который создается во время входа в систему.

Я добавил ниже код в выход: -

 NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

 for (NSHTTPCookie *each in [[[cookieStorage cookiesForURL:YOUR_URL] copy] autorelease]) 
 {
      // NSLog(@"cookie deleted==%@",each);
      [cookieStorage deleteCookie:each];
 }
2 голосов
/ 22 января 2012

ваш лучший выбор будет использовать NSUserDefaults класс, пример:

   // saving your data.
   NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
   [standardUserDefaults setObject:myUsername forKey:@"username"];

   // retrieve your data
   NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
   NSString *username = [standardUserDefaults objectForKey:@"username"];

Вы также можете использовать NSUserDefaults для сохранения статуса входа в систему текущего сеанса, например, сохраняя логический ключ для isLoggedIn key

  [standardUserDefaults setBOOL:TRUE forKey:@"isLoggedIn"];

Когда пользователь хочет выйти из системы, просто установите значение FALSE, чтобы снова предложить пользователю просмотр журнала, как будто это первый раз, когда пользователь использует приложение.

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

1 голос
/ 22 января 2012

Ответ АхмадТК в порядке, всего пара моментов:

  • Всегда убедитесь, что вы вызываете [standardUserDefaults синхронизировать]; после установки значений.
  • Инициировать проверку элемента isLoggedIn при запуске приложения и, если false, представить экран входа в систему для пользователя
  • Обрабатывать процесс выхода из системы в обратном порядке (установите для isLoggedIn значение NO)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...