Django 사용자 인증 시스템(하나) User 객체

4639 단어 django
User 객체
User 객체는 인증 시스템의 핵심입니다.사용자 대상은 일반적으로 사이트의 사용자를 대표하고 방문 제어, 가입 사용자, 관련 창설자와 내용 등을 지원한다.Django 인증 프레임워크에는 슈퍼유저('superusers')나 ('staff') 사용자가 같은 사용자 대상이 다른 속성을 설정했을 뿐입니다.
기본 필드 Fields
username
사용자 이름, 필수 필드.30자 이하로, @, +,.및 - 문자입니다.
first_name 선택 사항입니다.30 characters or fewer.
last_name 선택 사항입니다.30 characters or fewer.
이메일 메일박스, 선택 사항.Email address.
password 암호가 필요합니다.Django는 암호를 명문으로 저장하는 것이 아니라 해시 값을 저장합니다.
groups 사용자 그룹.Many-to-many relationship to Group
user_permissions 사용자 권한.Many-to-many relationship to Permission
    groups = models.ManyToManyField(Group, verbose_name=_('groups'),

        blank=True, help_text=_('The groups this user belongs to. A user will '

                                'get all permissions granted to each of '

                                'their groups.'),

        related_name="user_set", related_query_name="user")

    user_permissions = models.ManyToManyField(Permission,

        verbose_name=_('user permissions'), blank=True,

        help_text=_('Specific permissions for this user.'),

        related_name="user_set", related_query_name="user")

is_staffBoolean.사용자가 관리자 관리 인터페이스에 접근할 수 있는지 여부를 결정합니다.기본 False입니다.
is_activeBoolean. 사용자가 활성화되어 있는지 여부, 기본 True입니다.일반적으로 사용자를 삭제하지 않고 isactive가 False로 설정됩니다.
is_superuserBoolean.기본 False입니다.True로 설정되면 모든 권한이 사용자에게 부여됩니다.
    def has_perm(self, perm, obj=None):

        """

        Returns True if the user has the specified permission. This method

        queries all available auth backends, but returns immediately if any

        backend returns True. Thus, a user who has permission from a single

        auth backend is assumed to have permission in general. If an object is

        provided, permissions for this specific object are checked.

        """



        # Active superusers have all permissions.

        if self.is_active and self.is_superuser:

            return True



        # Otherwise we need to check the backends.

        return _user_has_perm(self, perm, obj)


last_login
마지막 로그인 시간은datetime 대상입니다. 기본값은 당시 시간입니다.
user.last_login = timezone.now()

date_joined 사용자가 만든 시간
메서드Methods
is_anonymous()
익명 사용자인지 여부.
is_authenticated () 사용자가 인증을 통해 로그인했는지 여부입니다.
get_full_name() first 반환name plus the last_name, with a space in between.
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) 사용자에게 권한이 있는지 여부perm의 형식은 "."입니다. 
has_perms(perm list, obj=None) 사용자가 사용 권한 목록의 각 사용 권한을 가지고 있는지 여부
사용자 작성
User 대상의 암호는 명문으로 저장되지 않기 때문에 User 대상을 만들 때 일반적인 Model create와 달리 내장된create사용자 () 방법.
>>> from django.contrib.auth.models import User

>>> user = User.objects.create_user('john', '[email protected]', 'johnpassword')



# At this point, user is a User object that has already been saved

# to the database. You can continue to change its attributes

# if you want to change other fields.

>>> user.last_name = 'Lennon'

>>> user.save()


물론 관리자 인터페이스에 사용자를 추가할 수도 있습니다.
superusers 만들기
$ python manage.py createsuperuser --username=joe [email protected]


암호 수정
내장된 set 사용password () 방법입니다.
>>> from django.contrib.auth.models import User

>>> u = User.objects.get(username='john')

>>> u.set_password('new password')

>>> u.save()


사용자 확인
authenticate()
주어진username과password가 유효한 사용자인지 확인하십시오.유효하면 User 객체가 반환되고 유효하지 않으면 None이 반환됩니다.
from django.contrib.auth import authenticate

user = authenticate(username='john', password='secret')

if user is not None:

    # the password verified for the user

    if user.is_active:

        print("User is valid, active and authenticated")

    else:

        print("The password is valid, but the account has been disabled!")

else:

    # the authentication system was unable to verify the username and password

    print("The username and password were incorrect.")


  

좋은 웹페이지 즐겨찾기