मैं अपना पहला प्रगतिशील वेब ऐप बनाने के रास्ते पर हूं जो डेटा संग्रह करने के लिए फ़ायरबेस का उपयोग करता है। मैं ऐप का उपयोग करने वाले सभी उपयोगकर्ताओं के लिए एक प्रविष्टि बिंदु के रूप में Gmail
का भी उपयोग कर रहा हूं। हालांकि मैं लॉगिन लागू करने पर फंस गया हूँ।रिक्त स्क्रीन दिखा रहे फायरबेस में Google प्रमाणीकरण प्रोग्रेसिव वेब ऐप
एचटीएमएल:
<button md-raised-button color="warn" (click)="logInGoogle()"><md-icon>group</md-icon>Sign in with google to enjoy the app</button>
ts:
logInGoogle(){
this.authService.loginWithGoogle().then(user => {
console.log("User is logged in");
//this.router.navigate(['/addweather']);
})
.catch(err => {
console.log('some error occured');
})
}
यहाँ सेवा है:
loginWithGoogle() {
return this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider());
}
इसके अलावा auth
राज्य मैं जाँच करने के लिए नीचे दिए गए मेरे में प्रवेश करने के लिए कोड है यह मेरे app.component.ts
कन्स्ट्रक्टर में:
यह लॉगिन कार्यक्षमता ब्राउज़रों पर ठीक काम करता है अगर मैं लॉगिन बटन पर क्लिक करें coz यह एक नई विंडो खुल जाता है:
this.authService.afAuth.authState.subscribe( (auth) => { if(auth === null){ console.log("Not Logged in."); this.router.navigate(['login']); this.isLoggedIn = false; } else { console.log("Successfully Logged in."); this.isLoggedIn = true; this.router.navigate(['']); } } )
अब व्यवहार की एक जोड़ी है कि एप्लिकेशन दिखाया जा रहा है कर रहे हैं और उसी टैब पर वापस आ जाता है जिस पर ऐप खोला जाता है।
मैं होम स्क्रीन पर अनुप्रयोग जोड़ने के लिए और फिर से प्रवेश करने का प्रयास करते यह मेरे नीचे दिए गए विकल्पों के लिए संकेत:
एक बार मैं क्रोम पर क्लिक करें, यह मेरे अधिकार देती है और मुझे पुनर्निर्देश ऐप पर लेकिन ऐप अब एक खाली स्क्रीन दिखाता है और ओथ स्क्रीन सिर्फ एक अनंत प्रोसेसिंग स्थिति पर जाती है। ऐसा क्यों हो रहा है? मेरा मतलब है कि यह सामान्य तरीके से काम नहीं करना चाहिए क्योंकि यह ब्राउज़र में ऐप चलाए जाने पर काम करता था।
लॉगिन बटन पर क्लिक करने पर इसे उपरोक्त छवि में दिखाए गए विकल्प को संकेत नहीं देना चाहिए; इसके बजाय इसे एक ओथ संवाद खोलना चाहिए। मैं निम्नलिखित कोड के साथ भी ऐसा करने की कोशिश की:
logInGoogle(){
var newWindow = window.open('https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&client_id=9722-j3fstr5sh6pumie.apps.googleusercontent.com&redirect_uri=https://weatherapp321.firebaseapp.com/__/auth/handler&response_type=token', 'name', 'height=600,width=450');
}
यह अब बजाय उत्साह विकल्पों के साथ एक संवाद है जो वांछित है को खोलता है। लेकिन अधिकृत करने के बाद, यह मुझे लॉगिन पृष्ठ पर वापस ले जाता है। ऐसा क्यों हो रहा है? जब मैं पहले से ही app.component.ts
में ऑथ स्टेट की जांच कर रहा हूं और उपयोगकर्ता को अधिकृत होने पर उपयोगकर्ता को होम पेज पर रीडायरेक्ट कर रहा हूं।
धीरज रखने और अंत तक पढ़ने के लिए धन्यवाद। सहायता के लिए बहुत आभार होगा।
संपादित
येवगेन द्वारा सुझाव दिया गया है: signInWithRedirect
साथ की कोशिश की। यह तब काम करता था जब मैंने पहली बार 2 सेकंड की थोड़ी देर के साथ लॉग इन किया था। लेकिन फिर मैंने लॉग आउट किया और फिर से लॉग इन करने का प्रयास किया, मुझे लॉग इन करने के बाद एक खाली स्क्रीन मिल गई।
यह 'signInWithRedirect' के साथ पहली बार काम उपयोगकर्ता के लॉग इन नहीं कर रहा है करता है लेकिन एक 3 सेकंड देरी की तरह। और अगर मैं लॉगआउट करता हूं और फिर लॉगिन करने का प्रयास करता हूं, तो ऐप मुझे लॉग इन करता है लेकिन फिर एक खाली स्क्रीन दिखाता है। –
यदि आप चाहें तो यूआरएल साझा कर सकते हैं और फिर आप इसे अपने मोबाइल डिवाइस पर आजमा सकते हैं। –