Django はユーザー認証システムを搭載しています。ユーザーアカウント、グループ、パーミッション、そしてCookieベースのユーザーセッションを制御します。このドキュメントのこのセクションでは、デフォルトの実装がどう機能するか、またあなたのプロジェクトのニーズに対応させるための 拡張とカスタマイズ の方法を説明しています。
Django の認証システムは、認証と権限の両方を扱います。簡単に言うと、認証はユーザーが誰であるかを立証し、権限は立証されたユーザーが何をすることが許されているかを決定します。ここでは、認証という用語は両方のタスクを指すために使われます。
認証システムを構成するものは以下の通りです:
Django の認証システムは一般的であることを狙いとしており、ウェブ上の認証システムで見られるようないくつかの機能を有していません。これらに共通する問題の解決策は、サードパーティのパッケージにて実装されます。
認証関連をサポートする仕組みは、 django.contrib.auth
内の Django contrib モジュールとしてバンドルされています。デフォルトでは、必要な設定は django-admin startproject
で生成される settings.py
にすでに記述されています。これらは、あなたの INSTALLED_APPS
に記述される 2 つの項目により構成されています:
'django.contrib.auth'
は、認証フレームワークおよびそのデフォルトのモデルの中心機能を含みます。'django.contrib.contenttypes'
は Django content type system です。パーミッションをあなたが作成したモデルと紐付けられるようにします。そして、あなたの MIDDLEWARE
内にある以下の項目です:
SessionMiddleware
は、リクエストを横断する sessions を管理します。AuthenticationMiddleware
は、ユーザとセッションを使用リクエストを紐付けます。With these settings in place, running the command manage.py migrate
creates
the necessary database tables for auth related models and permissions for any
models defined in your installed apps.
2022年6月01日