2016-10-20 3 views
8

मेरा फ़ायरबेस क्लाइंट ऐप एक कस्टम बैक-एंड सर्वर के साथ संचार करता है, इसलिए मुझे अपने सर्वर पर प्रत्येक HTTPS अनुरोध के साथ ID टोकन भेजने की आवश्यकता है। संदर्भ से,हम FirebaseUser.getToken (Boolean forcerefresh) को कब सही पर सेट करेंगे?

Should only be set to true if the token is invalidated out of band 
  1. जब मैं true को forcerefresh बूलियन सेट करूँ?
  2. क्या मेरे कस्टम सर्वर पर प्रत्येक HTTPS अनुरोध के दौरान टोकन (forcerefresh का उपयोग करके) को ठीक करना ठीक है। (यह एक कार्य के रूप में देता है के रूप में, मैं इसे अपने स्थानीय कैश में संग्रहीत कर दूँ, ताकि मैं किसी भी कार्य श्रोता जोड़ने की जरूरत नहीं है और एक ही धागे में अनुरोध पर कार्रवाई कर सकते हैं)

संपादित करें : अब Google नई एपीआई प्रदान करता है जो टोकन को स्वचालित रूप से समाप्त होने पर रीफ्रेश करेगा।

getIdToken(forceRefresh) returns firebase.Promise containing string 

गूगल डॉक्स

से वर्तमान टोकन देता है अगर यह समाप्त नहीं हुआ है, अन्यथा इस टोकन ताज़ा और वापस आ जाएगी एक नया एक

उत्तर

4

सामान्य में, करने के लिए forceRefresh सेट असत्य। यह अनुशंसित व्यवहार है। हालांकि, यह निर्भर करता है कि आप क्या कर रहे हैं। आप यह सुनिश्चित करना चाहते हैं कि आपका टोकन हर समय अद्यतित हो और समकालिक रूप से उपलब्ध हो। ऐसा करने के लिए आपको टोकन की समयसीमा समाप्त होने से कुछ मिनट पहले रीफ्रेश करना होगा। यदि आप GetToken (false) को कॉल करते हैं, तो आप कैश किए गए टोकन को वापस प्राप्त करेंगे जो कि समाप्त होने वाला है, जो वांछित नहीं है। उस स्थिति में, आप रीफ्रेश को बल देते हैं और टोकन को अपडेट करते हैं। ऐसा करके, आप सुनिश्चित करते हैं कि आपके पास समकालिक रूप से एक अप्रत्याशित टोकन है।

+0

मुझे कैसे पता चलेगा कि मेरा टोकन समाप्त होने वाला है। क्या मुझे इसकी समाप्ति की जांच करने के लिए कोड जोड़ने की आवश्यकता है और यदि कॉल getoken (true) से कॉल समाप्त होने वाला है। – Bikash

+0

वर्तमान में टोकन जीवनकाल एक घंटा है। आप क्लाइंट jwt पार्सर का उपयोग करके इसे पार्स भी कर सकते हैं और उस पर समाप्ति समय की जांच कर सकते हैं। – bojeil

2

इसे तब तक गलत पर सेट करें जब तक कि आप इसे ताज़ा करने के लिए मजबूर नहीं करना चाहते। यदि आप इसे गलत पर सेट करते हैं, तो फ़ायरबेस कैश किए गए टोकन को प्राप्त करता है (यदि यह समाप्त नहीं हुआ है) या टोकन को रीफ्रेश करता है और इसे वापस कर देता है (यदि यह समाप्त हो गया है)।

https://firebase.google.com/docs/reference/js/firebase.User#getToken

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