2015-03-14 1 views
0

J'utilise $ firebaseAuth pour contrôler la partie connexion de mon application. Tout a bien fonctionné avant, mais maintenant, à l'actualisation, je suis immédiatement déconnecté.

Une partie de mon itinéraire:

}).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() 

}) 

La fonction Authentifier():

function authenticate(){ 

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

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

    }]}  

} 

Le bloc .run() qui attire un changement d'itinéraire erreur:

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/"); 

     } 

    }); 

}]); 

Et pour mon service complétude 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 

    } 

}]) 

Quand je rafraîchir dans/paramètres/profil/i get DÉCONNECTÉ et returend à/login /.

La fonction console.log() dans la authenticate() retourne ceci:

status: 2 
value:"AUTH_REQUIRED" 

Cela se produit uniquement lors de l'actualisation sur toutes les pages. Si je ne rafraîchis pas, l'authentification fonctionne correctement.

Des idées?

thx,

Répondre

0

Je ne sais pas si c'est votre problème, mais à partir de: https://www.firebase.com/docs/web/guide/login/facebook.html

Optional Settings

authWithOAuthPopup() and authWithOAuthRedirect() take an optional third parameter which is an object containing any of the following settings:

remember
If not specified - or set to default - sessions are persisted for as long as you have configured in the Login & Auth tab of your Firebase's Dashboard. To limit persistence to the lifetime of the current window, set this to sessionOnly. A value of none will not persist authentication data at all and will end authentication as soon as the page is closed.

Je ne sais pas si un compte de rafraîchissement de la page comme fermer la page, mais il pourrait être utile de vérifier la valeur dans Login et Auth pour s'assurer qu'il n'est pas réglé à quelque chose de bancal, je viens de tester et il vous permettra de le mettre à 0

+0

Rick, merci pour votre réponse, mais il semble avoir été résolu. Je n'ai rien changé à mon code, donc je suppose que c'était un problème de firebase. – kevinius