django

회원가입, 로그인, 로그아웃

발전생 2020. 12. 20. 17:00

https://docs.djangoproject.com/en/3.1/topics/auth/default/#how-to-log-a-user-in

 

Using the Django authentication system | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

django 공식문서에 로그인, 로그아웃 하는 방법이 아주 잘 나와있다. 보고 views.py에 작성하면 된다.

django.contrib.auth.forms 에서 로그인 폼, 회원가입 폼, 비밀번호 변경,리셋 폼, 유저 정보 변경 폼을 제공한다.

특정 필드를 추가, 제거하고 싶다면 form을 상속 받아서 수정하면 되겠다.

 

request가 매개변수로 전달이 되면 request.user를 통해 필요한 정보를 얻을 수 있다.

request.user.is_authenticated 를 사용하면 로그인 한 상태인지 아닌지를 구별할 수 있다. 템플릿에서도 views.py에서도 사용 가능하다.

 

데코레이터를 사용해서 특정 조건을 만족할 경우에만 view 험수를 실행하도록 할 수 있다.

@login_required 를 함수 위에 써주면 로그인 했을 경우에만 함수를 실행한다. 매개변수로 login_url을 지정해주면 로그인 세션이 없는 경우 해당 url로 이동시킨다. (매개변수가 없을 경우는 settings.py에서 정해준 곳으로 간다.)

그 외에도 데코레이터를 개별적으로 만들어서 특정 그룹에 속하는 사람만 view 함수를 실행하게 하는 것도 가능하다.