Переменные $ _SESSION не сохраняются при автоматическом входе в систему

У меня есть приложение для iPhone, которое общается с базой данных, которая включает в себя такие вещи, как данные пользователей (например, имя пользователя, адрес электронной почты, пароль), для этого я создал PHP API, и я подключаюсь к этому API в приложении iPhone. Моя проблема заключается в следующем: я сохраняю идентификатор пользователя в $_SESSION чтобы восстановить его позже, когда это необходимо, когда я вручную вхожу в систему, переменные $_SESSION легко сохраняются и я могу вызывать их, когда захочу, но когда приложение автоматически регистрируется (что очевидно, после первого входа в систему, где имя пользователя и пароль получают хранилище в цепочке ключей iPhone), переменные $_SESSION не сохраняются, я заметил, что они только сохраняются и вызываются без проблем после выхода из системы, которые переводится после session_destroy(); , вот код php, который я использую для входа и выхода

 session_start(); function login($user, $pass) { $result = query("SELECT IdUser, username FROM login WHERE username='%s' AND pass='%s' limit 1", $user, $pass); if (count($result['result'])>0) { $_SESSION['IdUser'] = $result['result'][0]['IdUser']; print json_encode($result); } else { errorJson('Authorization failed'); } } function logout() { $_SESSION = array(); session_destroy(); } 

Я попытался добавить session_destroy(); в начале метода входа, но это не сработало.

Кстати, я могу альтернативно сэкономить IdUser в NSUserDefaults или keychain для iPhone и отправить его на сервер, когда это необходимо. Безопасно / не правильно делать такие вещи на стороне приложения, а не на стороне сервера?