Django

[Django] 11. Django authentication system

개발자 뭄뭄 2022. 9. 22. 01:14
반응형

1. Django authentication system


  • 인증(authentication ) + 권한(authorization) 을 함께 제공한다.
    • authentication : 신원확인, 사용자가 누구인지 확인하는 것
    • authorization : 권한부여, 인증된 사용자가 수행할 수 있는 작어븡 결정
  • 필수구성은 이미 project/settings.pydjango.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.pyAUTH_USER_MODEL = “auth.User”로 작성한다. (내가 추가해서 작성)
    • settings.py는 global_settings.py를 상속된 문서이기 때문에, 눈에는 안보이지만 존재하는 요소이다.
    💡
    첫 마이그레이션 전에 작성해야 한다!

    cf) 만약 이미 프로젝트 진행중라면 ( 이전데이터가 중요하지 않은경우) 아래와 같이 초기화

    1. migration 파일 삭제 (번호가 붙은 파일)
    1. dq.sqlite3 삭제
    1. makemigrations → migrate

4. How to substitute a custom User Model


  • 3단계로 커스텀 유저 모델을 만들 수 있다.
    1. 클래스 작성하기
      # accounts/models.py
      
      from django.contrib.auth.models import AbstractUser
      
      # Create your models here.
      class User(AbstractUser):
          pass
    1. User를 사용하는데 나타내는 모델 바꾸기
      # settings.py
      
      AUTH_USER_MODEL = "accounts.User"
    1. 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

반응형