2016-02-17 5 views
0

После успешного входа в сервисный вызов я показываю панель управления в своем приложении, там есть еще один вызов службы.Как сохранить сеанс, когда пользователь уже зарегистрирован в приложении ios

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

Как сохранить, что пользователь уже зарегистрирован, если он/она входит в приложение и убивает приложение. (Приложение для убийства дважды нажмите кнопку «домой» и проведите по экрану).

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

Мой вопрос здесь поддерживает сеанс для доступа к другим службам. Но с серверной стороны он всегда говорит, что пользователь не входит в систему после убийства приложения со спины.

@All Ваша информация поможет сделать интеграционные услуги. Спасибо заранее.

+0

Вы должны держать эту информацию в 'NSUserDefaults'. Затем используйте методы делегирования приложения для вызова необходимых служб для восстановления приложения до требуемого состояния. – NSNoob

ответ

3

Вы можете установить значение BOOL на объект NSNumber и добавить его в NSUserDefault, когда закончить вход.

NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults]; 
[boolUserDefaults setObject:[NSNumber numberWithBool:YES] 
        forKey:@"loginStatus"]; 

Позже вы сможете получить это значение как простой BOOL, используя -boolForKey: функцию в NSUserDefaults и основана на том, что вы можете проверить, если пользователь уже вошел в систему.

Также вы можете сохранить в Local базы данных, coredata и т. д. на основе вашего требования.

UPDATE

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

+0

. Мой вопрос здесь поддерживает сеанс для доступа к другим службам. Но со стороны сервера он говорит, что пользователь не входит в систему. – kiran

+0

Да, когда вы впервые вошли в систему, со стороны сервера они должны отправить вам токен доступа. Это также вы сохраняете и отправляете это в других вызовах API. –

1

Если логин выполнен успешно, имейте ниже.

[[NSUserDefaults standardDefaults] setValue:@"yes" forKey:@"isLoggedIn"]; 
[[NSUserDefaults standardDefaults] synchronize]; 

Для проверки использования ниже.

if ([[[NSUserDefaults standardDefaults] valueForKey:@"isLoggedIn"] isEqualToString:@"yes") { 
    NSLog(@"You are logged in"); 
} else { 
    NSLog(@"You are not logged in"); 
} 
0

Я не уверен в вашей реализации сервера. Как правило, при входе в систему клиент (мобильное приложение) получает токен. Этот токен должен быть включен в запросы, сделанные впоследствии, чтобы показать серверу, что этот пользователь вошел в систему.

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

[[NSUserDefaults standardDefaults] setValue:token forKey:@"loginToken"]; 
[[NSUserDefaults standardDefaults] synchronize]; 

Затем, если приложение будет убит, после запуска:

NSString *token = [[NSUserDefaults standardDefaults] valueForKey:@"loginToken"]; 
//set the token to http header 
+0

Могу ли я спросить, какую библиотеку вы используете для http-звонков? AFNetworking? @kiran – billyklh

Смежные вопросы