2015-08-27 11 views
9

मेरे पास फायरबेस और कोणीय में बनाया गया एक एप्लिकेशन है, और मैं पृष्ठ को रीफ्रेश करने के बाद उपयोगकर्ताओं को लॉग इन रखने में सक्षम होना चाहता हूं। अभी मैं दो बुनियादी इनपुट फ़ील्ड जो एक नियंत्रकरीफ्रेश के बाद उपयोगकर्ता को फ़ायरबेस ऐप में कैसे लॉग इन किया जाए?

this.email = ""; 
    this.pass = ""; 
    this.emessage = ""; 

    this.loginUser = function() { 
     ref.authWithPassword({ 
      email: this.email, 
      password: this.pass 
     }, function(error, authData) { 
      if (error) { 
       console.log("Login Failed!", error); 
       this.emessage = error.message; 
       $scope.$apply(); 
      } else { 
       dataStorage.uid = authData.uid; 
       $location.path('/projects'); 
       $scope.$apply(); 
      } 
     }.bind(this)); 
    } 

यह सब ठीक है और बांका और यह काम करता करने के लिए बाध्य के साथ एक लॉगिन स्क्रीन है, लेकिन जब उपयोगकर्ता को पृष्ठ रीफ़्रेश वे वापस प्रस्थान कर गए हैं। क्या कोई तरीका है, जब नियंत्रक लोड होता है, तो देखें कि उपयोगकर्ता पहले से लॉग इन है और ऑटो-रीडायरेक्ट है या नहीं? धन्यवाद!

+1

सत्र या LocalStora पर पहुँच टोकन सहेजा जा रहा है के साथ? – Fals

+2

कोई ऐसा कैसे करता है। मैं क्षमा चाहता हूं अगर यह एक सवाल बहुत व्यापक है। –

उत्तर

14

कोड अब आपने उस मामले को संभाला है जहां उपयोगकर्ता लॉग ऑन करता है। उन मामलों को संभालने के लिए जहां उपयोगकर्ता पहले ही लॉग इन कर चुका है, आप ऑथ स्टेटस की निगरानी करते हैं। Firebase documentation on monitoring auth state से:

// Create a callback which logs the current auth state 
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 
ref.onAuth(function(authData) { 
    if (authData) { 
    console.log("User " + authData.uid + " is logged in with " + authData.provider); 
    } else { 
    console.log("User is logged out"); 
    } 
}); 

आमतौर पर आप केवल इस समारोह के else में बटन पर लॉग दिखाना चाहते हैं।

+0

धन्यवाद आदमी! विश्वास नहीं कर सका यह इतना आसान होगा। –

+0

आपका स्वागत है। मैं हाल ही में इस तक अनदेखा करता था और अपने लॉगिन बटन को छिपाने की कोशिश कर रहे सभी प्रकार की समस्याओं में पड़ता था, इसलिए यह जानने के मौके की सराहना करें कि यह कितना छोटा है * एक बार जब आप जानते हैं कि * कैसे। –

+0

authData क्या है ??? –

0

यदि आप कोणीय 4 का उपयोग कर रहे हैं तो आप AngularFire2 - आधिकारिक फायरबेस एकीकरण का उपयोग कर सकते हैं।

मेरे पास एक AuthService है जो AngularFire2 को लपेटती है। मैं बस सेवा के कन्स्ट्रक्टर में ऑथशन को पुनः प्राप्त करता हूं और जब मुझे इसकी आवश्यकता होती है तो इसका उपयोग करें। उदाहरण:

@Injectable() 
export class AuthenticationService { 

    private authState: any; 

    constructor(public afAuth: AngularFireAuth) { 
     this.afAuth.authState.subscribe((auth) => { 
      this.authState = auth 
     }); 
    } 

    get user(): any { 
     return this.authenticated ? this.authState : null; 
    } 
} 

पूर्ण प्रमाणीकरण सेवा कोड here पूर्ण कोणीय 4 Firebase उदाहरण here

संबंधित मुद्दे