Djangoは強力なユーザー認証システムを備えています。この記事では、その基本的な部分とそれらがどのように連携して動作するかについて説明します。
Djangoのユーザー認証システム
Djangoのユーザー認証システムは、認証と権限の両方を扱います。認証はユーザーが誰であるかを立証し、権限は立証されたユーザーが何をすることが許されているかを決定します。
Userオブジェクト
Userオブジェクトは、認証システムの中核です。このオブジェクトはあなたのサイトに関係する人々を表し、アクセスを制限すること、ユーザ情報を登録すること、コンテンツを作成者と関連付けることを可能にする際などに利用されます。
ユーザーの作成
ユーザーを作成するための最も直接的な方法は、組み込まれているcreate_user()
というヘルパー関数を利用することです。
from django.contrib.auth.models import User
user = User.objects.create_user('john', '[email protected]', 'johnpassword')
user.last_name = 'Lennon'
user.save()
パスワードの変更
Djangoはユーザモデルに未加工の (単なるテキストの) パスワードは保存せず、ハッシュ値でのみ保存します。ユーザのパスワードを変更するには、set_password()
を使用します。
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
ユーザーの認証
認証情報のセットを検証するにはauthenticate()
を利用してください。
from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
# A backend authenticated the credentials
else:
# No backend authenticated the credentials
以上がDjangoでのユーザー認証の基本的な流れです。これらの知識を活用して、安全なWebアプリケーションを作成しましょう。.