फ्लास्क-लॉगिन में वास्तव में उपयोगकर्ता बैकएंड नहीं होता है, यह सिर्फ सत्र मशीनरी को संभालता है ताकि आप लॉगिन और लॉगआउट उपयोगकर्ताओं की सहायता कर सकें। आपको यह बताना होगा (सजावट के तरीकों से), उपयोगकर्ता का क्या प्रतिनिधित्व करता है और यह पता लगाना भी आप पर निर्भर है कि कोई उपयोगकर्ता "सक्रिय" है या नहीं (क्योंकि "सक्रिय" होने का अर्थ विभिन्न अनुप्रयोगों में अलग-अलग चीजें हो सकता है )।
आपको दस्तावेज पढ़ना चाहिए और सुनिश्चित करें कि यह क्या करता है और क्या नहीं . यहाँ मैं केवल इसे db बैकएंड के साथ वायर करने पर ध्यान केंद्रित करने जा रहा हूँ।
आरंभ करने के लिए, उपयोगकर्ता ऑब्जेक्ट को परिभाषित करें; जो आपके उपयोगकर्ताओं के लिए गुणों का प्रतिनिधित्व करता है। यह ऑब्जेक्ट तब डेटाबेस, या एलडीएपी, या जो कुछ भी क्वेरी कर सकता है और यह वह हुक है जो लॉगिन तंत्र को आपके डेटाबेस बैकएंड से जोड़ता है।
मैं लॉगिन उदाहरण का उपयोग करूंगा/करूंगी इस उद्देश्य के लिए स्क्रिप्ट।
class User(UserMixin):
def __init__(self, name, id, active=True):
self.name = name
self.id = id
self.active = active
def is_active(self):
# Here you should write whatever the code is
# that checks the database if your user is active
return self.active
def is_anonymous(self):
return False
def is_authenticated(self):
return True
एक बार जब आप उपयोगकर्ता ऑब्जेक्ट बना लेते हैं, तो आपको एक ऐसी विधि लिखनी होगी जो उपयोगकर्ता को लोड करे (मूल रूप से, User
का एक उदाहरण बनाता है। ऊपर से कक्षा)। इस विधि को यूजर आईडी के साथ कहा जाता है।
@login_manager.user_loader
def load_user(id):
# 1. Fetch against the database a user by `id`
# 2. Create a new object of `User` class and return it.
u = DBUsers.query.get(id)
return User(u.name,u.id,u.active)
एक बार आपके पास ये चरण हो जाने के बाद, आपकी लॉगिन विधि यह करती है:
-
यह देखने के लिए जांचता है कि क्या उपयोगकर्ता नाम और पासवर्ड मेल खाते हैं (आपके डेटाबेस के विरुद्ध) - आपको यह कोड स्वयं लिखना होगा।
-
यदि प्रमाणीकरण सफल रहा तो आपको उपयोगकर्ता का एक उदाहरण
login_user()
. पर भेजना चाहिए