login_user、logout_user、セッション
セッションへのユーザーのログインとログアウトを行います
「login_user、logout_user、セッション」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
ユーザーをログインさせる
パスワードの確認に成功したら、login_userを呼び出して、ユーザーがログインしたことをFlask-Loginに伝えます。この1回の呼び出しで、セッションが設定されます。
from flask_login import login_user
login_user(user)一般的なログインルート
ログインビューではユーザーを検索し、パスワードを検証してからlogin_userを呼び出します。その後、ダッシュボードのような実際のページにリダイレクトします。
if user and user.check_password(pw):
login_user(user)
return redirect(url_for("dashboard"))login_userが保存するもの
login_userはオブジェクト全体を保存しません。ユーザーのidをセッションCookieに書き込み、後でuser_loaderがユーザーを復元します。
ログイン状態を保持する
ブラウザーを閉じた後もログイン状態を維持するには、remember=Trueを渡します。Flask-Loginはセッション専用のCookieではなく、長期間有効なCookieを設定します。
login_user(user, remember=True)current_userにアクセスする
ビュー内のどこからでもcurrent_userを読み取り、ログイン中のユーザーを取得できます。これは、現在のリクエストのユーザーを常に指すプロキシです。
from flask_login import current_user
name = current_user.username匿名ユーザー
誰もログインしていない場合、current_userは匿名ユーザーオブジェクトになります。そのis_authenticatedはFalseなので、安全に条件分岐できます。
if current_user.is_authenticated:
show_dashboard()ログアウトする
ユーザーをログアウトさせるには、logout_userを呼び出します。セッションからユーザーIDが削除され、次のリクエストでは再び匿名ユーザーとして扱われます。
from flask_login import logout_user
logout_user()ログアウトルート
ログアウトビューは簡単です。logout_userを呼び出してからホームへリダイレクトします。確認するパスワードはなく、セッションを消去するだけです。
@app.route("/logout")
def logout():
logout_user()
return redirect(url_for("index"))Secret Keyが必要です
セッションは署名付きCookieに保存されるため、アプリにはSECRET_KEYが必要です。これがないとlogin_userがエラーを発生させ、何も動作しません。
app.config["SECRET_KEY"] = "a-long-random-value"セッションはユーザーごとに分かれます
ブラウザーごとに独自の署名付きcookieが使われるため、2人のユーザーが互いのセッションを見ることはありません。Flask-Loginがセッションを明確に分離します。
ユーザーにあいさつする
Flask-Loginがcurrent_userを注入するため、テンプレートでもcurrent_userを使用できます。これにより、個人向けのナビゲーションバーも1行で作成できます。
<p>Hello, {{ current_user.username }}</p>確認してみましょう
ユーザーが「ログアウト」をクリックしました。セッションを終了する呼び出しはどれでしょうか。
まとめ
パスワードを確認した後にlogin_userを呼び出し、どこからでもcurrent_userを読み取り、logout_userでセッションを終了できるようになりました。SECRET_KEYがこれらを結び付けます。🔑
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「login_user、logout_user、セッション」レッスンは無料ですか?
はい。「login_user、logout_user、セッション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「login_user、logout_user、セッション」で何を学びますか?
セッションへのユーザーのログインとログアウトを行います ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「login_user、logout_user、セッション」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- パスワードはハッシュ化し、平文では保存しない
- ユーザーローダーとUserMixin
- login_user、logout_user、セッション
- login_requiredでビューを保護する