django.contrib.auth
¶
Dokumen ini menyediakan bahan acuan API untuk komponen-komponen dari sistem otentifikasi Django. Untuk rincian lebih pada penggunaan dari komponen-komponen ini atau bagaimana menyesuaikan autentifikasi dan otorisasi lihat authentication topic guide.
Model User
¶
- class models.User¶
Bidang¶
- class models.User
Obyek
User
mempunyai bidang berikut:- username¶
Diwajibkan. 150 karakter atau lebih sedikit. Nama pengguna dapat mengandung alfanumerik,
_
,@
,+
,.
dan-
karakter.The
max_length
should be sufficient for many use cases. If you need a longer length, please use a custom user model.
- first_name¶
Pilihan (
blank=True
). 150 karakter atau sedikit.
- last_name¶
Pilihan (
blank=True
). 150 karakter atau sedikit.
- email¶
Pilihan (
blank=True
). Alamat surel.
- password¶
Required. A hash of, and metadata about, the password. (Django doesn't store the raw password.) Raw passwords can be arbitrarily long and can contain any character. The metadata in this field may mark the password as unusable. See the password documentation.
- user_permissions¶
Hubungan banyak-ke-banyak ke
Permission
- is_staff¶
Boolean. Allows this user to access the admin site.
- is_active¶
Boolean. Marks this user account as active. We recommend that you set this flag to
False
instead of deleting accounts. That way, if your applications have any foreign keys to users, the foreign keys won't break.Ini tidak diperlukan mengendalikan apakah atau bukan pengguna dapat masuk. Backend autentifikasi tidak diwajibkan untuk memeriksa untuk tanda
is_active
tetapi backend awalan (ModelBackend
) danRemoteUserBackend
melakukannya. Anda dapat menggunakan class:~django.contrib.auth.backends.AllowAllUsersModelBackend atauAllowAllUsersRemoteUserBackend
jika anda ingin mengizinkan pengguna tidak aktif untuk masuk. Dalam kasus ini, anda akan juga ingin menyesuaikanAuthenticationForm
digunakan olehLoginView
ketika itu menolak pengguna tidak aktif. Waspada bahwa metode pemeriksaan-perizinan sepertihas_perm()
dan autentifikasi dalam admin Django semua mengembalikanFalse
untuk pengguna tidak aktif.
- is_superuser¶
Boolean. Treats this user as having all permissions without assigning any permission to it in particular.
- last_login¶
Tanggalwaktu dari masuk terakhir pengguna.
- date_joined¶
The date/time when the account was created.
Atribut¶
- class models.User
- is_authenticated¶
Atribut hanya-baca yang selalu
True
(sebagai lawanAnonymousUser.is_authenticated
yang selaluFalse
). Ini adalah cara untuk memberitahu jika pengguna telah diotentifikasi. Ini tidak berarti perizinan apapun dan tidak memeriksa jika pengguna adalah aktif atau mempunyai sesi sah. Meskipun secara biasa anda akan memeriksa atribut ini padarequest.user
untuk menemukan apakah itu telah dikumpulkan olehAuthenticationMiddleware
(mewakili pengguna masuk saat ini), anda harus mengetahui atribut ini adalahTrue
untuk tiap instanceUser
.
- is_anonymous¶
Atribut hanya-baca yaitu selalu
False
. Ini adalah jalan untuk membedakan obyekUser
andAnonymousUser
. Umumnya, anda harus memilih menggunakanis_authenticated
pada atribut ini.
Cara¶
- class models.User
- get_username()¶
Mengembalikan nama pengguna untuk pengguna. Sejak model
User
dapat bertukar, anda haus menggunakan metode ini daripada mengacu atribut nama pengguna secara langsung.
- get_full_name()¶
Mengembalikan
first_name
ditambahlast_name
, dengan spasi diantaranya.
- get_short_name()¶
Mengembalikan
first_name
.
- set_password(raw_password)¶
Setel sandi pengguna ke string mentah yang diberikan, merawat campuran sandi. Tidak menyimpan obyek
User
.Ketika
raw_password
adalahNone
, sandi akan disetel menjadi sebuah sandi tidak berguna, seperti jikaset_unusable_password()
digunakan.
- check_password(raw_password)¶
- acheck_password(raw_password)¶
Asynchronous version:
acheck_password()
Mengembalikan
True
jika deretan karakter mentah yang diberikan adalah sandi benar untuk pengguna. (Ini merawat hash sandi dalam membuat perbandingan.)
- set_unusable_password()¶
Marks the user as having no password set by updating the metadata in the
password
field. This isn't the same as having a blank string for a password.check_password()
for this user will never returnTrue
. Doesn't save theUser
object.Anda mungkin butuh ini jika otentifikasi untuk aplikasi anda memakan tempat terhadap sumber luar yang ada seperti pelipat LDAP.
Password reset restriction
Users having an unusable password will not able to request a password reset email via
PasswordResetView
.
- has_usable_password()¶
Mengembalikan
False
jikaset_unusable_password()
telah dipanggil untuk pengguna ini.
- get_user_permissions(obj=None)¶
- aget_user_permissions(obj=None)¶
Asynchronous version:
aget_user_permissions()
Mengembalikan sekumpulan string perizinan yang pengguna miliki secara langsung.
Jika
obj
dilewatkan, hanya mengembalikan perizinan pengguna untuk objek khusus ini.Changed in Django 5.2:aget_user_permissions()
method was added.
- get_group_permissions(obj=None)¶
- aget_group_permissions(obj=None)¶
Asynchronous version:
aget_group_permissions()
Mengembalikan deretan karakter kumpulan perizinan yang pengguna punyai, melalui kelompok mreka.
Jika
obj
diloloskan, hanya mengembalikan perizinan kelompok untuk obyek tertentu ini.Changed in Django 5.2:aget_group_permissions()
method was added.
- get_all_permissions(obj=None)¶
- aget_all_permissions(obj=None)¶
Asynchronous version:
aget_all_permissions()
Mengembalikan sekumpulan deretan karakter perizinan yang pengguna punyai, kedua melalui perizinan kelompok dan pengguna.
Jika
obj
diloloskan. hanya mengembalikan perizinan untuk obyek tertentu ini.Changed in Django 5.2:aget_all_permissions()
method was added.
- has_perm(perm, obj=None)¶
- ahas_perm(perm, obj=None)¶
Asynchronous version:
ahas_perm()
Returns
True
if the user has the specified permission, where perm is in the format"<app label>.<permission codename>"
. (see documentation on permissions). If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.Jika
obj
diloloskan, metode ini tidak akan memeriksa untuk sebuah perizinan untuk model, tetapi untuk obyek tertentu ini.Changed in Django 5.2:ahas_perm()
method was added.
- has_perms(perm_list, obj=None)¶
- ahas_perms(perm_list, obj=None)¶
Asynchronous version:
ahas_perms()
Returns
True
if the user has each of the specified permissions, where each perm is in the format"<app label>.<permission codename>"
. If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.Jika
obj
diloloskan, metode ini tidak akan memeriksa untuk perizinan-perizinan untuk model, tetapi untuk obyek tertentu.Changed in Django 5.2:ahas_perms()
method was added.
- has_module_perms(package_name)¶
- ahas_module_perms(package_name)¶
Asynchronous version:
ahas_module_perms()
Returns
True
if the user has any permissions in the given package (the Django app label). If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.Changed in Django 5.2:ahas_module_perms()
method was added.
- email_user(subject, message, from_email=None, **kwargs)¶
Mengirim sebuah surel ke pengguna. Jika
from_email
adalahNone
, Django menggunakanDEFAULT_FROM_EMAIL
.**kwargs
apapun dilewatkan ke panggilansend_mail()
pokok
Pengelola metode¶
- class models.UserManager¶
Model
User
mempunyai pengelola penyesuaian yang mempunyai metode pembantu berikut (sebagai tambahan pada metode disediakan olehBaseUserManager
):- create_user(username, email=None, password=None, **extra_fields)¶
- acreate_user(username, email=None, password=None, **extra_fields)¶
Asynchronous version:
acreate_user()
Buat, simpan dan mengembalikan
User
.username
danpassword
disetel sesuai yang diberikan. Bagian ranah dariemail
adalah otomatis mengubah ke huruf kecil, dan mengembalikan obyekUser
akan menyetelis_active
keTrue
.Jika tidak ada sandi disediakan,
set_unusable_password()
akan dipanggil.If no email is provided,
email
will be set to an empty string.Argumen kata kunci
extra_fields
dilewatkan melalui metodeUser
’s__init__
untuk mengizinkan mengatur bidang yang berubah-ubah pada custom user model.Lihat Membuat pengguna sebagai contoh penggunaan.
Changed in Django 5.2:acreate_user()
method was added.
- create_superuser(username, email=None, password=None, **extra_fields)¶
- acreate_superuser(username, email=None, password=None, **extra_fields)¶
Asynchronous version:
acreate_superuser()
Sama seperti
create_user()
, but setsis_staff
danis_superuser
menjadiTrue
.Changed in Django 5.2:acreate_superuser()
method was added.
- with_perm(perm, is_active=True, include_superusers=True, backend=None, obj=None)¶
Returns users that have the given permission
perm
either in the"<app label>.<permission codename>"
format or as aPermission
instance. Returns an empty queryset if no users who have theperm
found.If
is_active
isTrue
(default), returns only active users, or ifFalse
, returns only inactive users. UseNone
to return all users irrespective of active state.Jika
include_superusers
adalahTrue
(awalan), hasil akan menyertakan pengguna super.If
backend
is passed in and it's defined inAUTHENTICATION_BACKENDS
, then this method will use it. Otherwise, it will use thebackend
inAUTHENTICATION_BACKENDS
, if there is only one, or raise an exception.
Obyek AnonymousUser
¶
- class models.AnonymousUser¶
django.contrib.auth.models.AnonymousUser
adalah kelas yang menerapkan antarmukadjango.contrib.auth.models.User
, dengan perbedaan ini:id selalu
None
.username
adalah selalu string kosong.get_username()
selalu mengembalikan deretan kalimat kosong.is_anonymous
adalahTrue
daripadaFalse
.is_authenticated
adalahFalse
daripadaTrue
.is_staff
danis_superuser
adalah selaluFalse
.is_active
adalah selaluFalse
.groups
danuser_permissions
adalah selalu kosong.set_password()
,check_password()
,save()
dandelete()
memunculkanNotImplementedError
.
In practice, you probably won't need to use
AnonymousUser
objects on your own, but
they're used by web requests, as explained in the next section.
Model Permission
¶
- class models.Permission¶
Bidang¶
Obyek Permission
mempunyai bidang berikut:
- class models.Permission
- name¶
Dibutuhkan. 255 karakter atau sedikit. Contoh:
'Can vote'
.
- content_type¶
Required. A foreign key to the
ContentType
model.
- codename¶
Dibutuhkan. 100 karakter atau sedikit. Contoh:
'can_vote'
.
Cara¶
Obyek Permission
mempunyai standar cara akses-data seperti lainnya Django model.
Model Group
¶
- class models.Group¶
Bidang¶
Obyek Group
mempunyai bidang berikut:
- class models.Group
- name¶
Dibutuhkan. 150 karakter atau lebih sedikit. Karakter apapun diizinkan. Contoh:
'Awesome Users'
.
- permissions¶
Bidang banyak-ke-banyak ke
Permission
:group.permissions.set([permission_list]) group.permissions.add(permission, permission, ...) group.permissions.remove(permission, permission, ...) group.permissions.clear()
Pengesah¶
- class validators.ASCIIUsernameValidator¶
Sebuah bidang pengesah mengizinkan hanya huruf ASCII dan angka, sebagai tambahan pada
@
,.
,+
,-
, dan_
.
- class validators.UnicodeUsernameValidator¶
Sebuah bidang pengesah mengizinkan krakter Unicode, sebagai tambahan pada
@
,.
,+
,-
, dan_
. Pengesah awalan untukUser.username
.
Sinyal masuk dan keluar¶
Kerangka kerja autentifikasi menggunakan signals berikut yang dapat digunakan untuk pemberitahuan ketika pengguna masuk atau keluar.
- user_logged_in¶
Terkirim ketika pengguna berhasil masuk.
Argumen dikirim dengan dinyal ini:
sender
Kelas pengguna yang baru masuk.
request
Instance
HttpRequest
saat ini.user
Instance pengguna yang baru masuk.
- user_logged_out¶
Dikirim ketika metode keluar dipanggil.
sender
Seperti diatas: kelas dari pengguna yang baru keluar atau
None
jika pengguna tidak terautentifikasi.request
Instance
HttpRequest
saat ini.user
Antarmuka pengguna yang baru keluar atau
None
jika pengguna tidak terautentifikasi.
- user_login_failed¶
Terkirim ketika pengguna gagal berhasil masuk
sender
Nama modul digunakan untuk pengecekan keaslian.
credentials
Sebuah kamus dari argumen kata kunci mengandung mandat pengguna yang dilewatkan ke
authenticate()
atau backend autentifikasi penyesuaian anda. Mandat mencocokkan sekumpulan dari pola 'sensitive', (termasuk sandi) tidak akan dikirim dalam kejelasan sebagai bagian dari sinyal.request
Obyek
HttpRequest
, jika satu telah disediakan padaauthenticate()
.
Backend pembuktian keaslian¶
Bagian ini merinci backend autentifikasi yang datang dengan Django. Untuk informasi pada bagaimana menggunakan mereka dan bagaimana menulis backend autentifikasi anda sendiri, lihat Other authentication sources section 1 of the User authentication guide 2.
Tersedia backend autentifikasi¶
Backend berikut tersedia di django.contrib.auth.backends
:
- class BaseBackend[sumber]¶
A base class that provides default implementations for all required methods. By default, it will reject any user and provide no permissions.
- aget_user_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_user_permissions()
Mengembalikan set kosong.
Changed in Django 5.2:aget_user_permissions()
function was added.
- aget_group_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_group_permissions()
Mengembalikan set kosong.
Changed in Django 5.2:aget_group_permissions()
function was added.
- aget_all_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_all_permissions()
Uses
get_user_permissions()
andget_group_permissions()
to get the set of permission strings theuser_obj
has.Changed in Django 5.2:aget_all_permissions()
function was added.
- ahas_perm(user_obj, perm, obj=None)¶
Asynchronous version:
ahas_perm()
Uses
get_all_permissions()
to check ifuser_obj
has the permission stringperm
.Changed in Django 5.2:ahas_perm()
function was added.
- class ModelBackend[sumber]¶
Ini adalah backend autentifikasi awalan digunakan oleh Django. Itu mengautentifikasi menggunakan mandat terdiri dari sebuah penciri pengguna dan sandi. Untuk model user Django, penciri pengguna adalah nama pengguna, untuk model user penyesuaian itu adalah bidang ditentukan oleh USERNAME_FIELD (lihat Customizing Users and authentication 1).
Itu juga menangangi model perizinan awalan seperti ditentukan untuk
User
danPermissionsMixin
.has_perm()
,get_all_permissions()
,get_user_permissions()
, danget_group_permissions()
mengizinkan sebuah obyek untuk dilewatkan sebagai sebuah parameter untuk perizinan khusus-obyek, tetapi backend ini tidak menerapkan mereka selain dari mengembalikan sebuah kumpulan kosong dari perizinan jikaobj is not None
.with_perm()
also allows an object to be passed as a parameter, but unlike others methods it returns an empty queryset ifobj is not None
.- aauthenticate(request, username=None, password=None, **kwargs)¶
Asynchronous version:
aauthenticate()
Mencoba untuk mengautentifikasi
username
denganpassword
dengan memanggilUser.check_password
. Jika tidak adausername
disediakan, itu mencoba mengambil sebuah nama pengguna darikwargs
menggunakan kunciCustomUser.USERNAME_FIELD
. Mengembalikan sebuah pengguna terautentifikasi atauNone
.request
adalah sebuahHttpRequest
dan mungkin berupaNone
jika itu tidak disediakan padaauthenticate()
(yang melewatkan itu ke backend).Changed in Django 5.2:aauthenticate()
function was added.
- aget_user_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_user_permissions()
Mengembalikan kumpulan dari string perizinan
user_obj
miliki dari perizinan pengguna mereka sendiri. Mengembalikan sebuah kumpulan kosong jikais_anonymous
atauis_active
adalahFalse
.Changed in Django 5.2:aget_user_permissions()
function was added.
- aget_group_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_group_permissions()
Mengembalikan sekumpulan perizinan string
user_obj
miliki dari perizinan dari kelompok mereka miliki. Mengembalikan sebuah kumpulan kosong jikais_anonymous
atauis_active
adalahFalse
.Changed in Django 5.2:aget_group_permissions()
function was added.
- aget_all_permissions(user_obj, obj=None)¶
Asynchronous version:
aget_all_permissions()
Mengembalikan kumpulan dari string perizinan
user_obj
miliki, termasuk kedua perizinan pengguna dan perizinan kelompok. Mengembalikan sebuah kumpulan kosong jikais_anonymous
atauis_active
adalahFalse
.Changed in Django 5.2:aget_all_permissions()
function was added.
- ahas_perm(user_obj, perm, obj=None)¶
Asynchronous version:
ahas_perm()
Gunakan
get_all_permissions()
untuk memeriksa jikauser_obj
mempunyai string perizinanperm
. MengembalikanFalse
jika pengguna tidakis_active
.Changed in Django 5.2:ahas_perm()
function was added.
- ahas_module_perms(user_obj, app_label)¶
Asynchronous version:
ahas_module_perms()
Mengembalikan apakah
user_obj
mempunyai perizinan apapun padaapp_label
aplikasi.Changed in Django 5.2:ahas_module_perms()
function was added.
- user_can_authenticate()[sumber]¶
Mengembalikan apakah pengguna diizinkan mengautentifikasi. Untuk mencocokkan perilaku dari
AuthenticationForm
yangprohibits inactive users from logging in
, metode ini mengembalikanFalse
untuk pengguna denganis_active=False
. Penyesuaian model user yang tidak mempunyai sebuah bidangis_active
diizinkan.
- with_perm(perm, is_active=True, include_superusers=True, obj=None)[sumber]¶
Returns all active users who have the permission
perm
either in the form of"<app label>.<permission codename>"
or aPermission
instance. Returns an empty queryset if no users who have theperm
found.If
is_active
isTrue
(default), returns only active users, or ifFalse
, returns only inactive users. UseNone
to return all users irrespective of active state.Jika
include_superusers
adalahTrue
(awalan), hasil akan menyertakan pengguna super.
- class AllowAllUsersModelBackend[sumber]¶
Sama seperti
ModelBackend
kecuali bahwa itu menolak pengguna tidak aktif karenauser_can_authenticate()
selalu mengembalikanTrue
.Ketika menggunakan backend, anda akan ingin menyesuaikan
AuthenticationForm
digunakan oleh tampilanLoginView()
dengan menimpa metodeconfirm_login_allowed()
ketika itu menolak pengguna tidak aktif.
- class RemoteUserBackend[sumber]¶
Gunakan backend ini untuk mengambil keuntungan dari autentifikasi external-to-Django-handled. Itu mengautentifikasi menggunakan nama pengguna dilewatkan dalam
request.META['REMOTE_USER']
. Lihat dokumentasi Authenticating against REMOTE_USER 1.Jika anda butuh lebih kendali, anda dapat membuat backend autentifikasi sendiri yang mewarisi dari kelas ini dan menimpa atribut ini atau metode:
- create_unknown_user¶
True
atauFalse
. Menentukan apakah atau tidak obyek pengguna dibuat jika belum di basisdata Awalan menjadiTrue
.
- aauthenticate(request, remote_user)¶
Asynchronous version:
aauthenticate()
The username passed as
remote_user
is considered trusted. This method returns the user object with the given username, creating a new user object ifcreate_unknown_user
isTrue
.Mengembalikan
None
jikacreate_unknown_user
adalahFalse
dan obyekUser
dengan nama pengguna yang diberikan tidak ditemukan dalam basisdata.request
adalah sebuahHttpRequest
dan mungkin berupaNone
jika itu tidak disediakan padaauthenticate()
(yang melewatkan itu ke backend).Changed in Django 5.2:aauthenticate()
function was added.
- clean_username(username)[sumber]¶
Melakukan pembersihan apapun pada
username
(misalnya melucuti informasi LDAP DN) sebelum menggunakan itu untuk mendapatkan atau membuat sebuah obyek pengguna. Mengembalikan nama pengguna dibersihkan.
- aconfigure_user(request, user, created=True)¶
Asynchronous version:
aconfigure_user()
Configures the user on each authentication attempt. This method is called immediately after fetching or creating the user being authenticated, and can be used to perform custom setup actions, such as setting the user's groups based on attributes in an LDAP directory. Returns the user object. When fetching or creating an user is called from a synchronous context,
configure_user
is called,aconfigure_user
is called from async contexts.The setup can be performed either once when the user is created (
created
isTrue
) or on existing users (created
isFalse
) as a way of synchronizing attributes between the remote and the local systems.request
adalah sebuahHttpRequest
dan mungkin berupaNone
jika itu tidak disediakan padaauthenticate()
(yang melewatkan itu ke backend).Changed in Django 5.2:aconfigure_user()
function was added.
- user_can_authenticate()¶
Mengembalikan apakah pengguna diizinkan untuk autentifikasi. Metode ini mengembalikan
False
untuk pengguna denganis_active=False
. Penyesuaian model user yang tidak mempunyai sebuah bidangis_active
adalah diizinkan.
- class AllowAllUsersRemoteUserBackend[sumber]¶
Sama seperti
RemoteUserBackend
kecuali bahwa itu menolak pengguna tidak aktif karenauser_can_authenticate()
selalu mengembalikanTrue
.
Fungsi-fungsi kegunaan¶
- aget_user(request)¶
Asynchronous version:
aget_user()
Mengembalikan instance model user terhubung dengan sesi
request
diberikanIt checks if the authentication backend stored in the session is present in
AUTHENTICATION_BACKENDS
. If so, it uses the backend'sget_user()
method to retrieve the user model instance and then verifies the session by calling the user model'sget_session_auth_hash()
method. If the verification fails andSECRET_KEY_FALLBACKS
are provided, it verifies the session against each fallback key usingget_session_auth_fallback_hash()
.Mengembalikan sebuah instance dari
AnonymousUser
jika backend autentifikasi disimpan dalam sesi tidak lagi dalamAUTHENTICATION_BACKENDS
, jika seorang pengguna tidak dikembalikan oleh metodeget_user()
backend, atau jika campuran autentifikasi sesi tidak disahkan.