ホームページ >バックエンド開発 >Python チュートリアル >Flask フレームワーク学習ガイド ユーザー ログイン管理

Flask フレームワーク学習ガイド ユーザー ログイン管理

WBOY
WBOYオリジナル
2016-12-05 13:27:221622ブラウズ

Flask 学習の旅を続けます。今日は flask のログイン管理モジュールを紹介します。前の記事の小さなブログ プロジェクトを覚えていますか? ログインはおそらく次の手順で行われます。

1. ログインボックスにユーザー名とパスワードを入力します

2. フラスコビュー関数はユーザーパスワードを取得し、データベース内のユーザー情報を照会して照合します

3. 成功した場合は、セッションに書き込み、ホームページにリダイレクトします

4. 特定のビューにアクセスするためにログインする必要がある場合は、各ビュー機能でユーザーがセッションに存在するかどうかを確認する必要があります。

今日、私たちはブログ プロジェクトの変革を続けています。導入された flask-login モジュールは、ビジネスとはあまり関係のないこれらのパブリック機能を処理するのに役立ちます。

現在アクティブなユーザー ID をセッションに保存し、自由にログインおよびログアウトできるようにします。

ログイン (またはログアウト) ユーザーがアクセスできるビューを制限できます。

厄介な「私を覚えてください」機能への対処。
ユーザー セッションを Cookie の盗難から保護するのに役立ちます。
Flask-Principal または後で使用する可能性のある他の認証拡張機能と統合できます。


1. flask-login モジュールの使用方法?

1.フラスコログインをインストールします

E:workdirdct-server-5055187src>pip install flask-login
2. フラスコログインを使用する

2.1) /blog2/__init__.py を追加します:

リーリー

2.2) ユーザーモデルを変更します(赤い部分が新しいコードです)

リーリー

ユーザー クラスは次のメソッドを実装する必要があります:

is_authenticated
ユーザーが認証された場合、つまり有効な証明が提供された場合に True を返します (認証されたユーザーのみが login_required 条件を満たします)。


is_activeこれがアクティブなユーザーで検証済みで、アカウントが非アクティブ化ではなくアクティブ化されており、アプリケーションのアカウント拒否条件を満たしていない場合は、 True を返します。非アクティブなアカウントはログインできません (もちろん、強制されない限り)。


is_anonymous匿名ユーザーの場合は、 True を返します。 (実際のユーザーは False を返す必要があります。)


get_id()ユーザーを一意に識別し、user_loader コールバックからユーザーをロードするために使用できる Unicode を返します。 Unicode である必要があることに注意してください。ID が元々 int またはその他の型である場合は、それを Unicode に変換する必要があります。
ユーザー クラスを簡単に実装するには、これらすべてのメソッドのデフォルト実装を提供する UserMixin から継承します。ここでは UserMixin を使用して実装します。

2.3) ビュー機能を修正(赤い部分が新規)

リーリー

flask-login を通じてログインを管理します。コードは非常にシンプルでシンプルです:
@login_required: このデコレーターは、アクセスにログインが必要なビューに配置されます。制限されたビューにアクセスするためのログインがない場合、__init__.py の login_manager.login_view = "login" によって制御されるログイン ページにジャンプします。 login_user(user): ログイン検証のためにユーザー オブジェクトを渡し、正しい場合は true を返し、そうでない場合は false を返します

logout_user(): ログアウト関数、セッション内のユーザー情報をクリアします

2.4) テンプレートでユーザーを参照する

リーリー


以前のlayout.htmlおよびshow_entries.htmlテンプレートでユーザーがログインしているかどうかを判断するメソッドをflask-loginのメソッドに変更します:

current_user 値: ユーザーがログインしていない場合、値は 0x0000000003DCF550 の であり、これは匿名ユーザーです{% if not current_user.is_authenticated() %} ユーザーがログインした後の値は

もちろん、ユーザーのログインは実際の状況に応じてカスタマイズすることもでき、詳細は一つ一つ説明しません。


【参考資料】

Flask-Login 中国語版: http://www.pythondoc.com/flask-login/#id1

Flask-Login 英語版:http://flask-login.readthedocs.io/en/latest/

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。