मैं फायरबेस, रिएक्ट और रेडक्स का उपयोग करके एक पूर्ण स्टैक वेबसाइट बनाने के लिए एक ट्यूटोरियल का अनुसरण कर रहा हूं। लॉग इन बैक एंड फ़ंक्शन को कॉल भेजता है जो लॉग इन करने के लिए firebase.auth().signInWithEmailAndPassword का उपयोग करता है। IdToken क्लाइंट को वापस भेज दिया जाता है और स्थानीय स्टोरेज में संग्रहीत किया जाता है। प्रमाणीकरण और राज्य की दृढ़ता तब क्लाइंट की जाँच पर निर्भर करती है कि क्या वर्तमान तिथि JWT टोकन की समाप्ति से पहले है। बैक एंड क्लाउड फ़ंक्शंस के लिए एपीआई कॉल के लिए 'बियरर {IdToken}' का उपयोग करते हुए एक प्राधिकरण शीर्षलेख की भी आवश्यकता होती है।

यह संरचना मुझे बहुत सिरदर्द दे रही है। मैंने बहुत सारी पढ़ाई की है और मेरी वर्तमान समझ यह है कि फायरबेस की अपनी प्राधिकरण दृढ़ता (?) है जिसे मैं सीधे अपने सामने के छोर पर लागू कर सकता हूं। फिर एक श्रोता का उपयोग करके मैं स्वचालित रूप से स्थिति परिवर्तन पर नए आईडी टोकन प्राप्त कर सकता हूं। यह हर घंटे समाप्त होने वाले टोकन की मेरी समस्या का समाधान करेगा। मैंने जो पढ़ा है उससे टोकन का स्थानीय भंडारण भी एक सुरक्षा जोखिम है।

मुझे यकीन नहीं है कि यह मेरे फ़ंक्शन कॉल के प्राधिकरण को कैसे प्रभावित करता है। क्या मुझे अभी भी प्राधिकरण शीर्षलेख का उपयोग करना चाहिए या क्या ऐसा करने का एक और शानदार फायरबेस तरीका है?

0
rID133 12 जून 2020, 22:43

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप फायरबेस प्रमाणीकरण के अंतर्निहित प्रदाताओं का उपयोग करते हैं, तो वे वास्तव में अधिकांश ग्राहकों पर साइन-इन जानकारी जानकारी को स्वचालित रूप से जारी रखते हैं, इसे पुनरारंभ करने पर पुनर्स्थापित करते हैं, और आईडी टोकन को समाप्त होने से ठीक पहले रीफ्रेश करते हैं।

इसलिए यदि आप किसी एक मानक प्रदाता का उपयोग करते हैं, तो आप केवल उपयोगकर्ता का आईडी टोकन प्राप्त कर सकते हैं और फिर उसे अपने क्लाउड फ़ंक्शन में भेज सकते हैं।

आप कॉल करने योग्य क्लाउड फ़ंक्शंस का उपयोग करके उस चरण को छोड़ भी सकते हैं। उनके लिए, फायरबेस फ़ंक्शंस एसडीके स्वचालित रूप से आईडी टोकन पास करता है, और सर्वर स्वचालित रूप से इसे डीकोड और सत्यापित करता है, और इसे आपके कोड में context.auth के रूप में पास करता है।

2
Frank van Puffelen 12 जून 2020, 20:30