Django 회원가입, 회원탈퇴, 정보수정, 비밀번호 변경 구현
회원가입 (Signup)
Django에서는 기본적으로 'auth.User'모델을 제공
'UserCreationForm'을 사용하여 회원가입 기능을 구현할 수 있음
UserCreationForm
username과 password로 새로운 user를 생성하는 ModelForm
username, password1, password2를 가짐
forms.py 생성
accounts/views.py 회원가입 로직 구현
url 연결
회원가입 태그 생성
회원탈퇴 (Delete Account)
DB에서 User를 지워주는 작업
'request.user.delete()'를 호출하여 사용자 계정을 삭제하는 방식으로 구현
url 연결
views.py 회원탈퇴(DB에서 delete)로직 구현
*탈퇴 후 세션 삭제 순서 중요
회원탈퇴 버튼 추가
정보 수정
Django에서 기본 User Model에 대한 기본적인 수정 ModelForm제공 → UserChangeForm
커스텀 'UserChangeForm'을 만들어 불필요한 필드를 제외하는 것이 좋음
url 연결
views.py 정보 수정 rendering test
회원정보수정 template 생성
회원정보수정 태그 생성
UserChangeForm
class Meta를 보면 'model = User'확인 가능
User Model
AbstractUser
foms.py에서 UserChangeForm 작성
views.py 회원정보 수정 로직 재구현
비밀번호변경(Change Password)
'PasswordChangeForm'을 사용하여 구현할 수 있음
비밀번호 변경 후 'update_session_auth_hash()'를 호출하여 세션을 유지, 로그인 상태를 유지할 수 있음
url연결
views.py - change_password 로직 구현
비밀번호 변경 후 세션을 유지하여 로그인 상태를 유지 코드
session invalidation on password change
change_password.html 템플릿 생성
Django의 기본 인증 시스템을 활용하여 회원가입, 회원탈퇴, 정보수정, 비밀번호 변경 기능(회원 관리 기능)을 구현할 수 있음
- 회원가입 : UserCreationForm
- 회원탈퇴 : request.user.delete() + auth_logout()
- 회원정보 수정 : CustomUserChangeForm으로 필요한 필드만 사용 가능
- 비밀번호 변경 : PasswordChangeForm, 'update_session_auth_hash()'로 세션 유지
'∟Framework > ∟Django' 카테고리의 다른 글
Django - Auth (1) | 2025.02.04 |
---|---|
Django - URL Namespace (0) | 2025.02.02 |
Django - Django Form과 ModelForm을 활용한 입력 폼 처리 (0) | 2025.01.31 |
Django - MTV 패턴을 활용한 RUD(Read, Update, Delete) 구현 (0) | 2025.01.22 |
Django - MTV패턴을 활용한 C(Create)와 R(Read) 구현 (0) | 2025.01.18 |