sql >> データベース >  >> RDS >> Mysql

フラスコログイン:それがどのように機能するか理解できません

    Flask-loginには実際にはユーザーバックエンドはなく、ユーザーのログインとログアウトを支援するセッション機構を処理するだけです。ユーザーを表すものを(メソッドを装飾することによって)伝える必要があります。また、ユーザーが「アクティブ」であるかどうかを知る方法もあなた次第です(「アクティブ」であると、アプリケーションごとに異なる意味を持つ可能性があるため) 。

    ドキュメント を読む必要があります 何をするのか、何をしないのかを確認してください 。ここでは、dbバックエンドとの配線にのみ集中します。

    まず、ユーザーオブジェクトを定義します。これは、ユーザーのプロパティを表します。このオブジェクトは、データベースやLDAPなどにクエリを実行でき、ログインメカニズムをデータベースバックエンドに接続するフックです。

    ログイン例 を使用します この目的のためのスクリプト。

    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のインスタンスを作成します)。 上からのクラス)。このメソッドはユーザーIDで呼び出されます。

    @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. ビットマップ画像とテキストを保存するためにSQLiteデータベースを実装する方法は?

    2. SQL SERVER 2016 –実行プランの比較

    3. MySQL SELECTを使用して仮想列を作成するにはどうすればよいですか?

    4. .NETのイベントとスレッド