$firebaseAuth выводит меня из системы после обновления (facebook)

Я использую $firebaseAuth для управления входной частью моего приложения. Раньше все работало нормально, но теперь, при обновлении, я сразу выхожу из системы.

Часть моего маршрута:

}).when("/login/", {

        templateUrl:"partials/login.html",
        controller:"tiki.controller.login"

}).when("/settings/profile/", {

    templateUrl:"partials/settings.profile.html",
    controller:"tiki.controller.settings.profile",
    resolve:authenticate()

})

Функция аутентификации():

function authenticate(){

    return {"currentAuth": ["firebaseAuth", function(firebaseAuth) {

        console.log(firebaseAuth.requireAuth())
        return firebaseAuth.requireAuth();

    }]}     

}

Блок .run(), который перехватывает ошибку изменения маршрута:

angular.module('tiki').run(["$rootScope", "$location", function($rootScope, $location) {

    $rootScope.$on("$routeChangeError", function(event, next, previous, error) {

        // We can catch the error thrown when the $requireAuth promise is rejected
        // and redirect the user back to the home page

        if (error === "AUTH_REQUIRED") {

            $location.path("/login/");

        }

    });

}]);

И для полноты мой сервис firebaseAuth.js:

'use strict';

/* Services */
angular.module("tiki").factory("firebaseAuth", ["$firebaseAuth", function($firebaseAuth){

    var ref = new Firebase("https://blistering-xxx.firebaseio.com/");

    if(ref){

        var service = $firebaseAuth(ref)

    }

    function loginFacebook(){

        return service.$authWithOAuthPopup("facebook")

    }

    function logOut(){

        service.$unauth()

    }

    function getState(){

        var state = service.$getAuth()

        if(state){

            return state

        }

    }

    function getUserName(){

        if(getState()){

            return getState().facebook.displayName

        }

    }

    function requireAuth(){

        return service.$requireAuth()

    }

    function service(){

        return service

    }

    return {

        loginFacebook:loginFacebook,
        logOut:logOut,
        getState:getState,
        getUserName,
        requireAuth:requireAuth,
        service:service

    }

}])

Когда я обновляюсь в /settings/profile/, я выхожу из системы и возвращаюсь в /login/.

console.log() в функции authentication() возвращает следующее:

status: 2
value:"AUTH_REQUIRED"

Это происходит только при обновлении на всех страницах. Если я не обновляюсь, то аутентификация работает нормально.

Любые идеи?

спасибо,


person kevinius    schedule 14.03.2015    source источник


Ответы (1)


Не уверен, что это ваша проблема, но с: https://www.firebase.com/docs/web/guide/login/facebook.html

Дополнительные настройки

authWithOAuthPopup() и authWithOAuthRedirect() принимают необязательный третий параметр, который представляет собой объект, содержащий любую из следующих настроек:

помните
Если не указано или задано значение по умолчанию, сеансы сохраняются до тех пор, пока вы настроили их на вкладке «Вход и аутентификация» панели управления Firebase. Чтобы ограничить сохранение сроком службы текущее окно, установите для этого параметра значение sessionOnly. При значении none данные аутентификации вообще не будут сохраняться, и аутентификация завершится, как только страница будет закрыта.

Я не знаю, считается ли обновление страницы закрытием страницы, но, возможно, стоит проверить значение в Login and Auth, чтобы убедиться, что оно не установлено на что-то шаткое, я только что проверил, и он с радостью позволит вам установить его на 0

person rick    schedule 22.03.2015
comment
Рик, спасибо за ваш ответ, но, похоже, он решен. Я ничего не менял в своем коде, поэтому я думаю, что это была какая-то проблема с firebase. - person kevinius; 23.03.2015
comment
Я хочу, чтобы эта ссылка все еще работала. Это не единственное подобное руководство с неработающими ссылками, поэтому я думаю, что их документы должны быть обновлены. - person Gary Carlyle Cook; 17.03.2021