2015-03-28 6 views
0

У меня есть приложение phonegap на iOS, использующее firebase для аутентификации. Вход в систему осуществляется следующим образом:Регулярно выдается при использовании firebase authWithPassword

var afterLogin = function(error, authData) { 
    if (error) { 
     console.log(error); 
     messenger.error(error.message); 
     return; 
    } 
    $scope.loggedIn = $auth.check(); 
    $scope.$apply(); 

    $sync.sync(); 

    messenger.success('Logged in'); 
    }; 

    $scope.doLogin = function() { 
    mixpanel.track('login'); 

    if (!$scope.loginForm.email && !$scope.loginForm.password) { 
     messenger.error('Enter email and password then tap login'); 
     return; 
    } else if (!$scope.loginForm.email) { 
     messenger.error('Enter your email then tap login'); 
     return; 
    } else if (!$scope.loginForm.password) { 
     messenger.error('Enter your password then tap login'); 
     return; 
    } 

    ref.authWithPassword({ 
     email : $scope.loginForm.email, 
     password : $scope.loginForm.password 
    }, afterLogin);  
    } 

проверить статус пользователя, как это:

check: function() { 
    var authData = ref.getAuth(); 
    if (authData) { 
    mixpanel.identify(authData.uid); 
    mixpanel.people.set({ 
     "$email": authData.password.email 
    }); 
    }  
    return !!authData; 
} 

Он отлично работает на начальном этапе, но пользователи получают выписался и должны снова войти в систему через 12-24 часов не использовать приложение. Возможно, когда приложение будет отключено из памяти? Очевидно, это довольно неприятно, не зная, что вызывает это. Длительность сеанса установлена ​​на 24 недели, все еще проблема.

Firebase версия: 2.1.2 Угловой: 1.3.6

Журнал LocalStorage после аутентификации с именем пользователя и паролем: enter image description here enter image description here

Возвращаясь через день после выхода из игры: enter image description here

Содержимое печенья (то же, что и у входа в систему или нет, там нет объектов для бомбардировки): enter image description here

+0

Здесь вы можете добавить более подробную информацию, чтобы помочь нам понять и воспроизвести проблему. Вышеприведенный код вряд ли будет точным воспроизведением кода, который вы используете. Вы не указали какую-либо информацию о версии, которая, безусловно, могла бы сыграть в такой нюанс. И вы не указали какие-либо шаги по устранению неполадок, которые вы предприняли, или возможные причины, из-за которых вы исключены (например, удаляется ли токен из локального хранилища? Существует ли токен? Если да, то что такое значение 'expires', если вы [break it down] (http://jsfiddle.net/firebase/XDXu5/embedded/result/)?) – Kato

+0

@Kato Я добавил дополнительную информацию о проблеме – Tom

+0

Эй, спасибо за дополнительную информацию. Это рисует лучшую картину. Мне кажется, что телефонная книга не сохраняет информацию о файле cookie/хранилище. Возможно, потому, что он внутренне использует 'file: //', и файлы cookie не разрешены для этого? Не могли бы вы проверить localStorage/cookies, чтобы узнать, сохраняется ли auth? – Kato

ответ

0

Это параметр в Firebase.

Перейти на приборную панель пожарной базы. Нажмите «Войти & Auth».

Затем в первом абзаце есть вход и выберите длину сеанса. Вы можете выбрать, сколько часов/недель и т. Д. Вы хотите.