Django ユーザー認証システム (1) User オブジェクト

黄舟
リリース: 2016-12-23 17:41:07
オリジナル
1297 人が閲覧しました

User Object

User オブジェクトは認証システムの中核です。ユーザー オブジェクトは通常、Web サイトのユーザーを表し、アクセス制御、登録ユーザー、作成者とコンテンツの関連付けなどをサポートするために使用されます。たとえば、スーパーユーザー (「スーパーユーザー」) または (「スタッフ」) ユーザーは、異なる属性が設定された同じユーザー オブジェクトです。

デフォルトフィールド フィールド

username

ユーザー名、必須フィールド。 30 文字以内で、_、@、+、- の文字を含めることができます。


オプション。 30 文字以下。


はオプションです。 30 文字以内。

email
E メール、オプション。メールアドレス。

passWord
パスワード、必須。 Django はパスワードを平文で保存せず、代わりにハッシュを保存します。

グループ
ユーザーグループ。 Group

user_permissions
ユーザー権限に対する多対多の関係。 Permission への多対多の関係

groups = models.ManyToManyField(Group, verify_name=_('groups'),
blank=True, help_text=_('このユーザーが属するグループ。ユーザーは '
'各グループに付与されているすべての権限を取得します。 s.manytomanyfield (Permission,
Verbose_name = _ ('User Permissions'), Blank =True,
help_text=_('このユーザーの特定の権限。'),
relationship_name= "user_set", relationship_query_name="user")


is_staff
ブール値。ユーザーが管理管理インターフェイスにアクセスできるかどうかを決定します。デフォルトは False です。

is_active
ブール値。 ユーザーがアクティブであるかどうかに関係なく、デフォルトは True。通常、ユーザーは削除されませんが、ユーザーの is_active は False に設定されます。

is_superuser
ブール値。デフォルトは False です。 True に設定すると、ユーザーは完全な権限を取得します。

def has_perm(self, perm, obj=None):
"""

ユーザーが指定された権限を持っている場合は True を返します。このメソッド

は利用可能なすべての認証バックエンドをクエリしますが、いずれかの
バックエンドが True を返した場合はすぐに返します。単一のauthバックエンドから許可を得ているユーザーは、一般的に許可を得ると想定されます。この特定のオブジェクトの許可はチェックされています。 # それ以外の場合は、バックエンドを確認する必要があります。デフォルトは現在時刻です。

user.last_login = timezone.now()


date_joined
ユーザーが作成された時刻

Methods

is_anonymous()

匿名ユーザーかどうか。

is_authenticated()

ユーザーが検証に合格してログインしたかどうか。

get_full_name()

first_name と last_name (間にスペースを入れて) を返します。


get_short_name()

first_name を返します。


set_password(raw_password)

パスワードを設定します。

check_password(raw_password)

パスワードを確認してください。

get_group_permissions(obj=None)

ユーザー グループの権限のコレクションを返します。


get_all_permissions(obj=None)

ユーザーのすべての権限のセットを返します。


has_perm(perm, obj=None)

ユーザーが特定の権限を持っているかどうか。権限の形式は、「<アプリラベル>.<権限コード名>」です。


has_perms(perm_list, obj=None)

ユーザーが権限リスト内の各権限を持っているかどうか。


ユーザーの作成

User オブジェクトのパスワードは平文で保存されないため、User オブジェクトの作成は通常の Model 作成とは異なり、組み込みの create_user() メソッドを使用する必要があります。

>>> django.contrib.auth.models からインポート
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')

# この時点で、user はすでにデータベースに保存されているユーザー オブジェクトです
# 他のフィールドを変更したい場合は、引き続きその属性を変更できます
>>> Lennon'
>>> user.save()

もちろん、管理インターフェイスでユーザーを追加することもできます。

スーパーユーザーを作成する

$ python manage.py createsuperuser --username=joe --email=joe@example.com


パスワードを変更する

組み込みのset_password()メソッドを使用します。

>>> django.contrib.auth.models からインポート

>>> u = User.objects.get(username='john')
>>> '新しいパスワード')
>>> u.save()

Verify user

authenticate()

指定されたユーザー名とパスワードが有効なユーザーであるかどうかを確認します。有効な場合は User オブジェクトが返され、無効な場合は None が返されます。

from django.contrib.auth importauthenticate

user =authenticate(username='john',password='secret')
if user is not None:
# ユーザーのパスワードが検証されました
if user.is_active:
print ("ユーザーは有効で、アクティブで、認証されています")
else:
print("パスワードは有効ですが、アカウントは無効になっています!")
else:
# 認証システムはユーザー名とパスワードを検証できませんでした
print (「ユーザー名とパスワードが間違っていました。」)

上記は、Django ユーザー認証システム (1) の User オブジェクトの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php) を参照してください。 .cn)!



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート