login_requiredとビューの保護
認証済みユーザーだけにページを制限します
「login_requiredとビューの保護」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。
非公開にすべきページもある
ダッシュボードやプロフィールページは、ログイン済みのユーザーだけが開けるようにするべきです。Djangoなら、こうしたビューの保護を簡単かつ一貫した方法で実現できます。🚧
login_requiredを使う
login_requiredデコレーターはビューを保護します。匿名の訪問者は自動的にログインページへリダイレクトされます。
from django.contrib.auth.decorators import login_requiredビューをデコレートする
ビュー関数のすぐ上に@login_requiredを記述します。この1行だけでページを保護できます。
@login_required
def dashboard(request):
return render(request, "dashboard.html")訪問者の移動先
アクセスが拒否されると、DjangoはLOGIN_URLに設定されたURLへリダイレクトします。settingsで設定して、ログインページに移動するようにしましょう。
LOGIN_URL = "/accounts/login/"nextパラメーター
リダイレクトには元のURLを含むnextクエリ値が追加されるため、ログイン後にユーザーを元々表示しようとしていたページへ戻せます。🎯
クラスベースビューを保護する
クラスベースビューでは、デコレーターの代わりにLoginRequiredMixinを使います。基底クラスのリストでは最初に指定してください。
from django.contrib.auth.mixins import LoginRequiredMixinMixinの配置が重要
クラス定義ではLoginRequiredMixinを汎用ビューより前に指定する必要があります。そうしないと保護が適用されません。
class Dashboard(LoginRequiredMixin, TemplateView):
template_name = "dashboard.html"ビュー内で確認する
手動で制御したい場合もあります。デコレーターを使わず、request.user.is_authenticatedを読み取って自分で処理を分岐させます。
if not request.user.is_authenticated:
return redirect("login")権限でさらに制限する
単なるログインではなく特定の権限を要求するには、permission_requiredを使います。指定した権限をユーザーが持っているか確認できます。
from django.contrib.auth.decorators import permission_requiredテンプレートでリンクを隠す
テンプレートでは非公開リンクをuser.is_authenticatedで囲み、ゲストに利用できないボタンを見せないようにします。
多層防御
リンクを隠すだけでは本当のセキュリティにはなりません。ユーザーはURLを直接入力できるため、必ずview自体も保護してください。
確認問題
login_requiredが匿名ユーザーを送る先を決める設定はどれですか。
まとめ:ビューの保護
login_requiredとLoginRequiredMixinでページを保護し、LOGIN_URLを設定しました。リンクを隠すだけでなく、ビュー自体を保護する方法も学びました。✅
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「login_requiredとビューの保護」レッスンは無料ですか?
はい。「login_requiredとビューの保護」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。
「login_requiredとビューの保護」で何を学びますか?
認証済みユーザーだけにページを制限します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Django Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「login_requiredとビューの保護」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDjango Academyレッスンでコードを書いて実行できますか?
はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Userモデルとauthenticate()
- login、logout、Auth Views
- UserCreationFormによる登録
- login_requiredとビューの保護