▶ Authentication 인증
사용자가 자신이 누구인지 확인하는 것
일종의 신원확인
▶ Django Authentication System 인증 시스템
사용자 인증과 관련된 기능을 모아 놓은 시스템
장고가 기본적으로 제공하는 User model이 아닌
우리가 직접 작성한 User model을 사용하기 위해서
기존의 User model을 새롭게 대체한다.
우리는 지금까지 별도의 User 클래스 정의 없이
내장된 auth 앱에 작성된 User 클래스를 사용해싿.
별도의 설정 없이 사용할 수 있어서 간편하지만,
개발자가 직접 수정할 수 없다는 문제가 생긴다
![]() |
AbstractUser 클래스를 상속받는 커스텀 User 클래스 작성 기존 User 클래스도 AbstractUser를 상속받기 때문에 이렇게 하면 커스텀 User 클래스도 기존 User 클래스와 완전히 같은 모습을 가지게 된다. |
![]() |
장고 프로젝트가 사용하는 기본 User 모델을 우리가 작성한 User 모델로 지정한다 수정 전 기본 값은 auth.User이다. |
![]() |
admin site에 대체한 User 모델을 등록한다 기본 user 모델이 아니기 때문에 등록하지 않으면 출력되지 않는다 |
장고 프로젝트의 User을 나타내는 데 사용하는 모델을 지정한다
AUTH_USER_MODEL은 프로젝트 중간에 변경할 수 없다
그래서 처음에 미리 설정해줘야한다
이미, 프로젝트가 진행되고 있는데 중간에 이걸 사용하고 싶을 경우
데이터 베이스를 초기화한 후 진행해야한다.
장고는 새 프로젝트를 싲가하는 경우 (기본 User 모델이 충분하더라도) 커스텀 User 모델을 설정하는 것을 강력하게 권하고 있다. 커스텀 User 모델은 기본 User 모델과 동일하게 작동하면서도 필요한 경우 나중에 맞춤으로 설정할 수 있기 때문이다. 단, User 모델 대체 작업은 프로젝트의 모든 migrations 또는 첫 migrate를 실행하기 전에 마쳐야한다. |
참고)
관리자 권한과 함께 완전한 기능을 가지고 있는 User model을 구현하는 추상 기본클래스 |
* Abstract base classes (추상 기본 클래스) 몇 가지 공통 정보를 여러 다른 모델에 넣을 때 사용하는 클래스 데이터 베이스 테이블을 만드는 데 사용되지 않으며, 대신 다른 모델의 기본 클래스로 사용되는 경우 해당 필드가 하위 클래스의 필드에 추가된다. |
* 참고
https://docs.python.org/3/library/abc.html
abc — Abstract Base Classes
Source code: Lib/abc.py This module provides the infrastructure for defining abstract base classes(ABCs) in Python, as outlined in PEP 3119; see the PEP for why this was added to Python. (See also ...
docs.python.org
* 공식 문서
순서를 다 외우지 말고, 공식문서 따라가면서 진행해봐도 좋다
https://docs.djangoproject.com/en/4.2/ref/settings/#auth-user-model
Settings | Django documentation
The web framework for perfectionists with deadlines.
docs.djangoproject.com
'WEB > Django concept' 카테고리의 다른 글
[Django][Authentication System1] 로그아웃 == 세션을 지우는 과정 (0) | 2024.04.20 |
---|---|
[Django][Authentication System1] 로그인 == 세션을 만드는 과정 (0) | 2024.04.20 |
[Django][Authentication System1] Cookie & Session (0) | 2024.04.20 |
[Django][Static Files] Media files (0) | 2024.04.20 |
[Django][Static Files] ImageField() (0) | 2024.04.20 |