Authentication System 2

이남경·2024년 4월 1일
0

SSAFY 11기

목록 보기
52/67

Authentication System 2


회원 가입

User 객체를 Create 하는 과정

UserCreationForm()

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

get_user_model()

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

user객체를 직접적으로 가져오지 않음

회원 탈퇴


회원 탈퇴

User 객체를 Delete 하는 과정

회원정보 수정


회원정보 수정

User 객체를 Update 하는 과정

UserChangeForm()

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

UserChangeForm 사용 시 문제점

User 모델의 모든 정보들 (fields)까지 모두 출력되어 수정이 가능하기 때문에 일반 사용자들이 접근해서는 안되는 정보는 출력하지 않도록 해야 함

→ CustomUserChangeForm에서 접근 가능한 필드를 다시 조정

비밀번호 변경


비밀번호 변경

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

PasswordChangeForm()

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

세션 무효화 방지하기


암호 변경 시 세션의 무효화

비밀번호가 변경되면 기존 세션과의 회원 인증 정보가 일치하지 않게 되어 버려 로그인 상태가 유지되지 못하고 로그아웃 처리됨

비밀번호가 변경되면서 기존 세션과의 회원 인증 정보가 일치하지 않기 때문

update_session_auth_hash(request, user)

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

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

인증된 사용자에 대한 접근 제한


로그인 사용자에 대해 접근을 제한하는 2가지 방법

  1. is_authenticated 속성 (attribute)

  2. login_required 데코레이터 (decorator)

is_authenticated

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

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

login_required

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

→ 비인증 사용자의 경우 /accounts/login 주소로 redirect 시킴

참고


업로드중..

0개의 댓글

관련 채용 정보