반응형

장고는 기본적으로 회원 시스템이 기본적으로 제공된다.
장고는 로그인, 로그아웃, 회원가입, 비밀번호 관리 같은 기능을 위한 인증(Authentication) 시스템을 내장하고 있다.
장고의 기본 User 모델과 관리자 페이지(Admin)에 대해 알아보자.
Django User
- 장고는 기본적으로 회원 시스템을 내장
- 로그인, 로그아웃, 회원가입, 비밀번호 변경 같은 기능 제공
- User Model
- `from django.contrib.auth.models import User`
User 모델
| 필드명 | 설명 |
| username | 사용자 ID |
| 이메일 주소 | |
| password | 암호화된 비밀번호 |
| is_staff | 관리자 여부 |
| is_superuser | 슈퍼 관리자 여부 |
| is_active | 계정 활성화 여부 |
| date_joined | 계정 생성일 |
| last_login | 마지막 로그인 시간 |
비밀번호
- User 모델의 password 필드는 비밀번호를 그대로 저장하지 않고 해시(hash)된 값을 저장
- ` pbkdf2_sha256$...`
- 관리자도 실제 비밀번호 확인 불가
- AUTH_PASSWORD_VALIDATORS
- 비밀번호 검증 기능 (조건)
- 비밀번호 길이, 흔한 비밀번호, 숫자로만 이루어진 비밀번호, 사용자 정보와 지나치게 유사한 비밀번호 등
일반 사용자 / 관리자 / 슈퍼 관리자
사용자를 권한에 따라 구분
일반 사용자
- 서비스에 가입한 일반 회원
- 로그인, 로그아웃, 게시글 작성, 댓글 작성 등 서비스에서 허용한 기능 사용
관리자 (staff)
- `is_staff=True`인 사용자
- Django Admin 페이지에 접근 가능
- 모든 권한을 가지는 것은 아니고 모델별로 권한 별도 부여 가능
슈퍼 관리자 (superuser)
- `is_superuser=True`인 Django의 최고 권한 사용자
- 모든 모델에 대한 조회, 생성, 수정, 삭제 권한 소유
- 슈퍼 유저 생성 명령어: `python manage.py createsuperuser`
Django Admin
- 관리자 페이지 기본 제공
- 서버 실행 후 다음 주소로 접속 가능
- `http://localhost:8000/admin/`

- 데이터베이스를 직접 확인 하지 않아도 조회, 생성, 수정, 삭제 작업 수행 가능
[참고] 실전! Django 입문 강의
반응형