सत्र का उपयोग करते समय, फ्लास्क को एक गुप्त कुंजी की आवश्यकता होती है। प्रत्येक उदाहरण में मैंने देखा है, गुप्त कुंजी किसी तरह उत्पन्न होती है और फिर स्रोत कोड या कॉन्फ़िगरेशन फ़ाइल में संग्रहीत होती है।
इसे स्थायी रूप से संग्रहीत करने का क्या कारण है? जब एप्लिकेशन शुरू होता है तो केवल इसे क्यों नहीं जेनरेट किया जाता?
app.secret_key = os.urandom(50)
उत्तर:
उत्तर № 1 के लिए 26सत्र कुकी पर हस्ताक्षर करने के लिए गुप्त कुंजी का उपयोग किया जाता है। यदि आपको अपने आवेदन को फिर से शुरू करना पड़ा, और कुंजी को पुनर्जीवित करना पड़ा, तो सभी मौजूदा सत्र अमान्य हो जाएंगे। यह संभवत: वह नहीं है जो आप चाहते हैं (या कम से कम, अमान्य सत्रों के बारे में जाने का सही तरीका नहीं है।) एक और मामला कुछ और के लिए बनाया जा सकता है जो गुप्त कुंजी पर निर्भर करता है, जैसे कि रीसेट पासवर्ड प्रदान करने के लिए इसके खतरनाक द्वारा उत्पन्न टोकन। urls (उदाहरण के लिए)।
आवेदन को फिर से शुरू करने की आवश्यकता हो सकती हैक्रैश के कारण, या क्योंकि सर्वर ने रिबूट किया, या क्योंकि आप बग फिक्स या नई सुविधा को आगे बढ़ा रहे हैं, या क्योंकि सर्वर आप "नई प्रक्रियाओं का उपयोग कर रहे हैं, आदि। इसलिए आप सर्वर पर हमेशा के लिए भरोसा नहीं कर सकते हैं"।
मानक अभ्यास रेपो के लिए कुछ फेंकने योग्य कुंजी है (ताकि वहाँ है) कुछ कुछ देव मशीनों के लिए) और फिर तैनाती के समय स्थानीय विन्यास में कुंजी सेट करने के लिए। इस तरह, कुंजी को "t leaked और doesn" t को फिर से बनाने की आवश्यकता है।
वहाँ भी द्वितीयक चलाने का मामला हैसिस्टम जो ऐप के संदर्भ पर निर्भर करते हैं, जैसे कि पृष्ठभूमि के कार्यों को चलाने के लिए सेलेरी, या एप्लिकेशन के कई लोड संतुलित उदाहरण। यदि एप्लिकेशन के प्रत्येक रनिंग इंस्टेंस में अलग-अलग सेटिंग्स हैं, तो वे कुछ मामलों में एक साथ सही ढंग से काम नहीं कर सकते हैं।