Django
[Django] 11. Django authentication system
개발자 뭄뭄
2022. 9. 22. 01:14
반응형
1. Django authentication system
- 인증(authentication ) + 권한(authorization) 을 함께 제공한다.
- authentication : 신원확인, 사용자가 누구인지 확인하는 것
- authorization : 권한부여, 인증된 사용자가 수행할 수 있는 작어븡 결정
- 필수구성은 이미 project/settings.py에
django.contrib.auth
에 포함되어있다.
2. Start ‘accounts’ App
- 가상환경 생성 및 실행 → requirements.txt 설치
python manage.py startapp accounts
- 나중의 편의를 위해서 앱 이름은 ‘accounts’ 로 정한다.
- crud/settings.py 의 INSTALLED_APPS에
‘accounts’
추가
- crud/urls.py 에 경로
path('accounts/', include('accounts.urls')
추가
3. Substituting a custom User Model
- 장고에서 기본적으로 제공하는 ‘User Model’을 ‘Custom User model’로 대체한다.
- 기본 User모델과 동일하게 작동하면서 필요한 경우 나중에 맞춤설정 할 수 있기 때문에 장고에서는 커스텀 User 모델 사용하는 것을 권장한다.
- 현재 project에서 사용할 user model을 결정할 AUTH_USER_MODEL 설정 값으로 Default UserModel을 override할 수 있다.
- crud/setting.py의
AUTH_USER_MODEL = “auth.User”
로 작성한다. (내가 추가해서 작성)
- settings.py는 global_settings.py를 상속된 문서이기 때문에, 눈에는 안보이지만 존재하는 요소이다.
💡첫 마이그레이션 전에 작성해야 한다!cf) 만약 이미 프로젝트 진행중라면 ( 이전데이터가 중요하지 않은경우) 아래와 같이 초기화
- migration 파일 삭제 (번호가 붙은 파일)
- dq.sqlite3 삭제
- makemigrations → migrate
4. How to substitute a custom User Model
- 3단계로 커스텀 유저 모델을 만들 수 있다.
- 클래스 작성하기
# accounts/models.py from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): pass
- User를 사용하는데 나타내는 모델 바꾸기
# settings.py AUTH_USER_MODEL = "accounts.User"
admin.py
에 User 모델 등록하기# accounts/admin.py from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import User # Register your models here. admin.site.register(User, UserAdmin)
- 클래스 작성하기
Uploaded by N2T
반응형