Django : Authentication system 2

2024. 4. 1. 16:07Web, Django, DB

  • 회원 가입

User 객체를 Create 하는 과정

 

  • UserCreationForm( )

회원 가입시 사용자 입력 데이터를 받는

built-in ModelForm

→ UserCreationForm 과 UserChangeForm 은 class Meta : model = User 로 기존 유저 모델을 사용하는 내장 폼이기 때문에 대체한 유저 모델로 커스텀을 해주어야 사용할 수 있다.

 

  • get_user_model( )

현재 프로젝트에서 활성화된 사용자 모델을 반환하는 함수

→ get_user_model 을 사용하면 자동으로 커스텀 User 모델을 반환해주므로 User 모델을 직접 참조하지 않는다.

 

  • 회원 탈퇴

User 객체를 Delete 하는 과정

 

  • 회원정보 수정

User 객체를 Update 하는 과정

 

  • UserChangeForm( )

회원정보 수정 시 사용자 입력 데이터를 받는 built-in ModelForm

→ User 모델의 모든 정보들(fields)까지 출력되기 때문에 일반 사용자들이 접근해선 안되는 정보를 차단하기 위하여 CustomUserChangeForm 에서 접근 가능한 필드를 조정해야 한다.

 

  • 비밀번호 변경

인증된 사용자의 Session 데이터를 Update 하는 과정

 

  • PasswordChangeForm( )

비밀번호 변경 시 사용자 입력 데이터를 받는 built-in Form

 

  • update_session_auth_hash(request, user)

암호 변경 시 세션 무효화를 막아주는 함수

→ 암호가 변경되면 새로운 password의 Session Data로 기존 session을 자동으로 갱신한다.

원래 비밀번호가 변경되면 기존 세션과의 회원 인증 정보가 일치하지 않게 되어 로그인 상태가 유지되지 못한다.

 

  • 로그인 사용자에 대해 접근을 제한하는 방법
  1. is_authenticated 속성 (attribute)
  2. login_required 데코레이터 (decorator)

 

  • is_authenticated

사용자가 인증되었는지 여부를 알 수 있는 User model 의 속성

→ 모든 User 인스턴스에 대해 항상 True인 읽기 전용 속성이며, 비인증 사용자에 대해서만 False이다.

 

  • login_required

인증된 사용자에 대해서만 view 함수를 실행시키는 데코레이터

'Web, Django, DB' 카테고리의 다른 글

DB : Many to one relationships  (0) 2024.04.03
SQL  (0) 2024.04.02
Django : Authentication system  (0) 2024.04.01
Django : Static  (0) 2024.04.01
Django : Form  (0) 2024.04.01