2012-09-25 14 views
6

मैं फ्लास्क-लॉगिन एक्सटेंशन के साथ एक फ्लास्क ऐप स्थापित कर रहा हूं। फ्लास्क-लॉगिन दस्तावेज एक वैकल्पिक टोकन जेनरेटर स्थापित करने की सिफारिश करता है जो सत्र टोकन (जो डिफ़ॉल्ट विधि है) बनाने के लिए उपयोगकर्ता आईडी और ऐप रहस्य का उपयोग नहीं करता है। लेकिन यह कैसे करना है इसके लिए कोई स्पष्ट सिफारिश नहीं प्रदान करता है।फ्लास्क-लॉगिन टोकन लोडर

तो, User.get_auth_token() के लिए, मैं पैरामीटर के रूप में उपयोगकर्ता ईमेल और पासवर्ड के साथ make_secure_token फ़ंक्शन का उपयोग कर रहा हूं (इसलिए मुझे इन पैरामीटरों का एक हैश + ऐप गुप्त मिलता है)।

अगला, मुझे उपयोगकर्ता को token_loader कॉलबैक के साथ टोकन से प्राप्त करने में सक्षम होना चाहिए। फ्लास्क-लॉगिन में टोकन उत्पन्न करने के लिए डिफ़ॉल्ट विधि कच्चे उपयोगकर्ता आईडी और उपयोगकर्ता आईडी + ऐप गुप्त का हैश शामिल करना है। इससे उपयोगकर्ता को टोकन से बहुत सरल लगता है - बस आईडी पकड़ो और उपयोगकर्ता को देखें।

लेकिन क्या मुझे सत्र टोकन में उपयोगकर्ता आईडी को उजागर करना चाहिए? यदि मैं नहीं करता, तो क्या मुझे लुकअप संभव बनाने के लिए डेटाबेस आईडी में सत्र टोकन संग्रहीत करना चाहिए या उपयोगकर्ता आईडी के साथ कहीं और स्टोर करना चाहिए?

संक्षेप में: क्या किसी को पता है कि सुरक्षित टोकन & संबंधित token_loader कॉलबैक बनाने के लिए सबसे अच्छा अभ्यास क्या है?

उत्तर

3

फ्लास्क मेलिंग सूची पर, मैट राइट ने मुझे फ्लास्क-सुरक्षा एक्सटेंशन में his implementation पर इंगित किया। वह एक हस्ताक्षरित टोकन बनाने के लिए itsdangerous का उपयोग करता है जो उपयोगकर्ता आईडी और पासवर्ड हैश वाली धारावाहिक (URLSafeTimedSerializer() के माध्यम से) सूची को एन्कोड करता है। तो टोकन को उपयोगकर्ता आईडी को पकड़ने के लिए डीकोड किया जा सकता है।

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