django.contrib.authLink to this heading
This document provides API reference material for the components of Django’s authentication system. For more details on the usage of these components or how to customize authentication and authorization see the authentication topic guide.
User modelLink to this heading
- class models.UserLink to this definition
필드Link to this heading
- class models.User
Userobjects have the following fields:- usernameLink to this definition
Required. 150 characters or fewer. Usernames may contain alphanumeric,
_,@,+,.and-characters.The
max_lengthshould be sufficient for many use cases. If you need a longer length, please use a custom user model.
- first_nameLink to this definition
Optional (
blank=True). 150 characters or fewer.
- last_nameLink to this definition
Optional (
blank=True). 150 characters or fewer.
- emailLink to this definition
Optional (
blank=True). Email address.
- passwordLink to this definition
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.
- groupsLink to this definition
Many-to-many relationship to
Group
- user_permissionsLink to this definition
Many-to-many relationship to
Permission
- is_staffLink to this definition
Boolean. Allows this user to access the admin site.
- is_activeLink to this definition
Boolean. Marks this user account as active. We recommend that you set this flag to
Falseinstead of deleting accounts. That way, if your applications have any foreign keys to users, the foreign keys won’t break.This doesn’t necessarily control whether or not the user can log in. Authentication backends aren’t required to check for the
is_activeflag but the default backend (ModelBackend) and theRemoteUserBackenddo. You can useAllowAllUsersModelBackendorAllowAllUsersRemoteUserBackendif you want to allow inactive users to login. In this case, you’ll also want to customize theAuthenticationFormused by theLoginViewas it rejects inactive users. Be aware that the permission-checking methods such ashas_perm()and the authentication in the Django admin all returnFalsefor inactive users.
- is_superuserLink to this definition
Boolean. Treats this user as having all permissions without assigning any permission to it in particular.
- last_loginLink to this definition
A datetime of the user’s last login.
- date_joinedLink to this definition
The date/time when the account was created.
속성Link to this heading
- class models.User
- is_authenticatedLink to this definition
항상 ``True``(항상 ``False``인 `AnonymousUser.is_authenticated``와 반대이다) 인 읽기 전용 속성. 이는 사용자가 인증되었는지를 알려주는 방법이다. 모든 권한을 의미하는 것은 아니고 사용자가 활성 상태인지 유효한 세션이 있는지를 확인하는 것이 아니다. 그럼에도 불구하고, :class:`~django.contrib.auth.middleware.AuthenticationMiddleware (현재 로그인되어 있는 사용자를 나타낸다) 에 의해 덧붙여졌는지 알아내기 위해 ``request.user``의 속성을 확인할 것이고, 이 속성은 모든
Userinstance에 대해 ``True``임을 알아야 한다.
- is_anonymousLink to this definition
Read-only attribute which is always
False. This is a way of differentiatingUserandAnonymousUserobjects. Generally, you should prefer usingis_authenticatedto this attribute.
메소드Link to this heading
- class models.User
- get_username()Link to this definition
Returns the username for the user. Since the
Usermodel can be swapped out, you should use this method instead of referencing the username attribute directly.
- get_full_name()Link to this definition
Returns the
first_nameplus thelast_name, with a space in between.
- get_short_name()Link to this definition
Returns the
first_name.
- set_password(raw_password)Link to this definition
Sets the user’s password to the given raw string, taking care of the password hashing. Doesn’t save the
Userobject.When the
raw_passwordisNone, the password will be set to an unusable password, as ifset_unusable_password()were used.
- check_password(raw_password)Link to this definition
- acheck_password(raw_password)Link to this definition
Asynchronous version:
acheck_password()주어진 원시 문자열이 사용자의 올바른 패스워드라면 ``True``를 리턴한다. (비교를 할 때 패스워드 해싱을 처리한다.)
- set_unusable_password()Link to this definition
Marks the user as having no password set by updating the metadata in the
passwordfield. This isn’t the same as having a blank string for a password.check_password()for this user will never returnTrue. Doesn’t save theUserobject.어플리케이션에 대한 인증이 LDAP 디렉토리와 같은 기존 외부 소스에 대해 수행되는 경우 필요할 수 있다.
- has_usable_password()Link to this definition
Returns
Falseifset_unusable_password()has been called for this user.
- get_user_permissions(obj=None)Link to this definition
- aget_user_permissions(obj=None)Link to this definition
Asynchronous version:
aget_user_permissions()사용자가 직접적으로 갖는 권한 문자열의 모음을 리턴한다
obj가 전달이 되면, 특정 해당 객체에 대한 사용자 권한만 리턴한다.
- get_group_permissions(obj=None)Link to this definition
- aget_group_permissions(obj=None)Link to this definition
Asynchronous version:
aget_group_permissions()그룹을 통해 사용자가 갖는 권한 문자열의 모음을 리턴한다.
obj가 전달이 되면, 특정한 해당 객체에 대한 그룹 권한만 리턴한다.
- get_all_permissions(obj=None)Link to this definition
- aget_all_permissions(obj=None)Link to this definition
Asynchronous version:
aget_all_permissions()그룹과 사용자 권한을 통해 사용자가 갖는 권한 문자열의 모음을 리턴한다.
obj가 전달이 되면, 특정한 해당 객체에 대한 권한만 리턴한다.
- has_perm(perm, obj=None)Link to this definition
- ahas_perm(perm, obj=None)Link to this definition
Asynchronous version:
ahas_perm()Returns
Trueif 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.obj가 전달이 되면, 이 메소드는 모델에 대한 권한이 아니라 특정 객체에 대한 권한을 체크한다.
- has_perms(perm_list, obj=None)Link to this definition
- ahas_perms(perm_list, obj=None)Link to this definition
Asynchronous version:
ahas_perms()Returns
Trueif 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.obj가 전달이 되면, 이 메소드는 모델에 대한 권한이 아니라 특정 객체에 대한 권한을 체크한다.
- has_module_perms(package_name)Link to this definition
- ahas_module_perms(package_name)Link to this definition
Asynchronous version:
ahas_module_perms()Returns
Trueif 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.
- email_user(subject, message, from_email=None, **kwargs)Link to this definition
Sends an email to the user. If
from_emailisNone, Django uses theDEFAULT_FROM_EMAIL. Any**kwargsare passed to the underlyingsend_mail()call.
Manager methodsLink to this heading
- class models.UserManagerLink to this definition
The
Usermodel has a custom manager that has the following helper methods (in addition to the methods provided byBaseUserManager):- create_user(username, email=None, password=None, **extra_fields)Link to this definition
- acreate_user(username, email=None, password=None, **extra_fields)Link to this definition
Asynchronous version:
acreate_user()Creates, saves and returns a
User.The
usernameandpasswordare set as given. The domain portion ofemailis automatically converted to lowercase, and the returnedUserobject will haveis_activeset toTrue.If no password is provided,
set_unusable_password()will be called.If no email is provided,
emailwill be set to an empty string.The
extra_fieldskeyword arguments are passed through to theUser’s__init__method to allow setting arbitrary fields on a custom user model.See Creating users for example usage.
- create_superuser(username, email=None, password=None, **extra_fields)Link to this definition
- acreate_superuser(username, email=None, password=None, **extra_fields)Link to this definition
Asynchronous version:
acreate_superuser()Same as
create_user(), but setsis_staffandis_superusertoTrue.
- with_perm(perm, is_active=True, include_superusers=True, backend=None, obj=None)Link to this definition
Returns users that have the given permission
permeither in the"<app label>.<permission codename>"format or as aPermissioninstance. Returns an empty queryset if no users who have thepermfound.If
is_activeisTrue(default), returns only active users, or ifFalse, returns only inactive users. UseNoneto return all users irrespective of active state.If
include_superusersisTrue(default), the result will include superusers.If
backendis passed in and it’s defined inAUTHENTICATION_BACKENDS, then this method will use it. Otherwise, it will use thebackendinAUTHENTICATION_BACKENDS, if there is only one, or raise an exception.
AnonymousUser objectLink to this heading
- class models.AnonymousUserLink to this definition
django.contrib.auth.models.AnonymousUseris a class that implements thedjango.contrib.auth.models.Userinterface, with these differences:id is always
None.usernameis always the empty string.get_username()always returns the empty string.is_anonymousisTrueinstead ofFalse.is_authenticatedisFalseinstead ofTrue.is_staffandis_superuserare alwaysFalse.is_activeis alwaysFalse.groupsanduser_permissionsare always empty.set_password(),check_password(),save()anddelete()raiseNotImplementedError.
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.
Permission modelLink to this heading
- class models.PermissionLink to this definition
필드Link to this heading
Permission objects have the following
fields:
- class models.Permission
- nameLink to this definition
Required. 255 characters or fewer. Example:
'Can vote'.
- content_typeLink to this definition
Required. A foreign key to the
ContentTypemodel.
- codenameLink to this definition
Required. 100 characters or fewer. Example:
'can_vote'.
메소드Link to this heading
Permission objects have the standard
data-access methods like any other Django model.
- class models.Permission
- user_perm_strLink to this definition
-
Returns the string representation for use in
has_perm.
Group modelLink to this heading
- class models.GroupLink to this definition
필드Link to this heading
Group objects have the following fields:
- class models.Group
- nameLink to this definition
Required. 150 characters or fewer. Any characters are permitted. Example:
'Awesome Users'.
- permissionsLink to this definition
Many-to-many field to
Permission:group.permissions.set([permission_list]) group.permissions.add(permission, permission, ...) group.permissions.remove(permission, permission, ...) group.permissions.clear()
ValidatorsLink to this heading
- class validators.ASCIIUsernameValidatorLink to this definition
A field validator allowing only ASCII letters and numbers, in addition to
@,.,+,-, and_.
- class validators.UnicodeUsernameValidatorLink to this definition
A field validator allowing Unicode characters, in addition to
@,.,+,-, and_. The default validator forUser.username.
Login and logout signalsLink to this heading
The auth framework uses the following signals that can be used for notification when a user logs in or out.
- user_logged_inLink to this definition
Sent when a user logs in successfully.
Arguments sent with this signal:
발신자방금 로그인한 사용자의 클래스요청The current
HttpRequestinstance.사용자The user instance that just logged in.
- user_logged_outLink to this definition
로그아웃 메서드가 호출되면 보내집니다.
발신자As above: the class of the user that just logged out or
Noneif the user was not authenticated.요청The current
HttpRequestinstance.사용자The user instance that just logged out or
Noneif the user was not authenticated.
- user_login_failedLink to this definition
사용자가 성공적으로 로그인 하는 것을 실패하면 보내집니다
발신자The name of the module used for authentication.
credentialsA dictionary of keyword arguments containing the user credentials that were passed to
authenticate()or your own custom authentication backend. Credentials matching a set of ‘sensitive’ patterns (including password) will not be sent in the clear as part of the signal.요청The
HttpRequestobject, if one was provided toauthenticate().
Authentication backendsLink to this heading
This section details the authentication backends that come with Django. For information on how to use them and how to write your own authentication backends, see the Other authentication sources section of the User authentication guide.
Available authentication backendsLink to this heading
The following backends are available in django.contrib.auth.backends:
- class BaseBackendLink to this definition
A base class that provides default implementations for all required methods. By default, it will reject any user and provide no permissions.
- get_user_permissions(user_obj, obj=None)Link to this definition
- aget_user_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_user_permissions()Returns an empty set.
- get_group_permissions(user_obj, obj=None)Link to this definition
- aget_group_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_group_permissions()Returns an empty set.
- get_all_permissions(user_obj, obj=None)Link to this definition
- aget_all_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_all_permissions()Uses
get_user_permissions()andget_group_permissions()to get the set of permission strings theuser_objhas.
- has_perm(user_obj, perm, obj=None)Link to this definition
- ahas_perm(user_obj, perm, obj=None)Link to this definition
Asynchronous version:
ahas_perm()Uses
get_all_permissions()to check ifuser_objhas the permission stringperm.
- class ModelBackendLink to this definition
This is the default authentication backend used by Django. It authenticates using credentials consisting of a user identifier and password. For Django’s default user model, the user identifier is the username, for custom user models it is the field specified by USERNAME_FIELD (see Customizing Users and authentication).
It also handles the default permissions model as defined for
UserandPermissionsMixin.has_perm(),get_all_permissions(),get_user_permissions(), andget_group_permissions()allow an object to be passed as a parameter for object-specific permissions, but this backend does not implement them other than returning an empty set of permissions ifobj is not None.with_perm()also allows an object to be passed as a parameter, but unlike other methods it returns an empty queryset ifobj is not None.- authenticate(request, username=None, password=None, **kwargs)Link to this definition
- aauthenticate(request, username=None, password=None, **kwargs)Link to this definition
Asynchronous version:
aauthenticate()Tries to authenticate
usernamewithpasswordby callingUser.check_password. If nousernameis provided, it tries to fetch a username fromkwargsusing the keyCustomUser.USERNAME_FIELD. Returns an authenticated user orNone.request는HttpRequest이고 만약authenticate()로 제공되지 않으면None일 수 있습니다.
- get_user_permissions(user_obj, obj=None)Link to this definition
- aget_user_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_user_permissions()Returns the set of permission strings the
user_objhas from their own user permissions. Returns an empty set ifis_anonymousoris_activeisFalse.
- get_group_permissions(user_obj, obj=None)Link to this definition
- aget_group_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_group_permissions()Returns the set of permission strings the
user_objhas from the permissions of the groups they belong. Returns an empty set ifis_anonymousoris_activeisFalse.
- get_all_permissions(user_obj, obj=None)Link to this definition
- aget_all_permissions(user_obj, obj=None)Link to this definition
Asynchronous version:
aget_all_permissions()Returns the set of permission strings the
user_objhas, including both user permissions and group permissions. Returns an empty set ifis_anonymousoris_activeisFalse.
- has_perm(user_obj, perm, obj=None)Link to this definition
- ahas_perm(user_obj, perm, obj=None)Link to this definition
Asynchronous version:
ahas_perm()Uses
get_all_permissions()to check ifuser_objhas the permission stringperm. ReturnsFalseif the user is notis_active.
- has_module_perms(user_obj, app_label)Link to this definition
- ahas_module_perms(user_obj, app_label)Link to this definition
Asynchronous version:
ahas_module_perms()Returns whether the
user_objhas any permissions on the appapp_label.
- user_can_authenticate()Link to this definition
Returns whether the user is allowed to authenticate. To match the behavior of
AuthenticationForm.confirm_login_allowed(), this method returnsFalsefor users withis_active=False. Custom user models that don’t have anis_activefield are allowed.
- with_perm(perm, is_active=True, include_superusers=True, obj=None)Link to this definition
Returns all active users who have the permission
permeither in the form of"<app label>.<permission codename>"or aPermissioninstance. Returns an empty queryset if no users who have thepermfound.If
is_activeisTrue(default), returns only active users, or ifFalse, returns only inactive users. UseNoneto return all users irrespective of active state.If
include_superusersisTrue(default), the result will include superusers.
- class AllowAllUsersModelBackendLink to this definition
Same as
ModelBackendexcept that it doesn’t reject inactive users becauseuser_can_authenticate()always returnsTrue.When using this backend, you’ll likely want to customize the
AuthenticationFormused by theLoginViewby overriding theconfirm_login_allowed()method as it rejects inactive users.
- class RemoteUserBackendLink to this definition
Use this backend to take advantage of external-to-Django-handled authentication. It authenticates using usernames passed in
request.META['REMOTE_USER']. See the Authenticating against REMOTE_USER documentation.If you need more control, you can create your own authentication backend that inherits from this class and override these attributes or methods:
- create_unknown_userLink to this definition
TrueorFalse. Determines whether or not a user object is created if not already in the database Defaults toTrue.
- authenticate(request, remote_user)Link to this definition
- aauthenticate(request, remote_user)Link to this definition
Asynchronous version:
aauthenticate()The username passed as
remote_useris considered trusted. This method returns the user object with the given username, creating a new user object ifcreate_unknown_userisTrue.Returns
Noneifcreate_unknown_userisFalseand aUserobject with the given username is not found in the database.request는HttpRequest이고 만약authenticate()로 제공되지 않으면None일 수 있습니다.
- clean_username(username)Link to this definition
Performs any cleaning on the
username(e.g. stripping LDAP DN information) prior to using it to get or create a user object. Returns the cleaned username.
- configure_user(request, user, created=True)Link to this definition
- aconfigure_user(request, user, created=True)Link to this definition
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_useris called,aconfigure_useris called from async contexts.The setup can be performed either once when the user is created (
createdisTrue) or on existing users (createdisFalse) as a way of synchronizing attributes between the remote and the local systems.request는HttpRequest이고 만약authenticate()로 제공되지 않으면None일 수 있습니다.
- user_can_authenticate()Link to this definition
Returns whether the user is allowed to authenticate. This method returns
Falsefor users withis_active=False. Custom user models that don’t have anis_activefield are allowed.
- class AllowAllUsersRemoteUserBackendLink to this definition
Same as
RemoteUserBackendexcept that it doesn’t reject inactive users becauseuser_can_authenticatealways returnsTrue.
Utility functionsLink to this heading
- get_user(request)Link to this definition
- aget_user(request)Link to this definition
Asynchronous version:
aget_user()Returns the user model instance associated with the given
request’s session.It 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_FALLBACKSare provided, it verifies the session against each fallback key usingget_session_auth_fallback_hash().Returns an instance of
AnonymousUserif the authentication backend stored in the session is no longer inAUTHENTICATION_BACKENDS, if a user isn’t returned by the backend’sget_user()method, or if the session auth hash doesn’t validate.