Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

फ्लास्क-लॉगिन:समझ में नहीं आता कि यह कैसे काम करता है

फ्लास्क-लॉगिन में वास्तव में उपयोगकर्ता बैकएंड नहीं होता है, यह सिर्फ सत्र मशीनरी को संभालता है ताकि आप लॉगिन और लॉगआउट उपयोगकर्ताओं की सहायता कर सकें। आपको यह बताना होगा (सजावट के तरीकों से), उपयोगकर्ता का क्या प्रतिनिधित्व करता है और यह पता लगाना भी आप पर निर्भर है कि कोई उपयोगकर्ता "सक्रिय" है या नहीं (क्योंकि "सक्रिय" होने का अर्थ विभिन्न अनुप्रयोगों में अलग-अलग चीजें हो सकता है )।

आपको दस्तावेज पढ़ना चाहिए और सुनिश्चित करें कि यह क्या करता है और क्या नहीं . यहाँ मैं केवल इसे 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)

एक बार आपके पास ये चरण हो जाने के बाद, आपकी लॉगिन विधि यह करती है:

  1. यह देखने के लिए जांचता है कि क्या उपयोगकर्ता नाम और पासवर्ड मेल खाते हैं (आपके डेटाबेस के विरुद्ध) - आपको यह कोड स्वयं लिखना होगा।

  2. यदि प्रमाणीकरण सफल रहा तो आपको उपयोगकर्ता का एक उदाहरण login_user() . पर भेजना चाहिए



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाएँ शामिल हों, योग करें और समूह की गणना करें

  2. Yii2 जहां AND या OR कंडीशन ग्रुपिंग कैसे करें?

  3. ...mysql2/mysql2.so:[बग] विभाजन दोष रूबी 2.0.0p247

  4. आईडी कॉलम से कुंजी मान के साथ MySQL से PHP सरणी जेनरेट करें

  5. DATE और TIME से DATETIME बनाना