티스토리 뷰
유저 앱의 기능을 Django에서 제공하는 인증 시스템을 사용해 보려고 이것저것 시도해 보면서 알게 된? 부분을 개인적으로 정리해 보았다. (chatGPT 참고 👍)
부끄럽지만 ^^.. 작성한 코드를 살펴보면 'POST'요청에서 사용자로부터 ID로 사용되는 email값과 password값을 입력받는데, Django에서 제공하는 authenticate() 함수와 login() 함수를 사용하여 사용자 인증과 사용자 ID를 세션에 저장하려고 했다.
※ authenticate() 함수가 실행되면 받아온 매개변수 값(아래 코드에서는 email값과 password값)이 유효하지 않는다면 None 값을 반환한다.
→ 폴더명\hyj\users\views.py
def login(request):
if request.method == 'GET':
return render(request, 'users/login.html')
elif request.method == 'POST':
email = request.POST['email']
password = request.POST['password']
errorMsg = {}
# authenticate() 유효하지 않는다면 None 값을 반환한다
user = authenticate(request, email=email, password=password)
if user is not None:
login(request,user=user)
return redirect('/board', status=200)
else:
errorMsg['error'] = "ID 혹은 비밀번호 오류입니다."
return render(request, 'users/login.html', errorMsg)
❓ 그러나 정상적으로 회원 로그인이 되지 않아 user 를 출력해봤더니 회원, 비회원 상관없이 None 값을 반환했다.
authenticate( 요청 = 없음 , ** 자격 증명 )
'기본적으로 authenticate() 함수는 사용자 식별을 위해 username과 password 매개변수를 사용합니다. 따라서 UserManager 클래스를 사용하지 않고 커스텀 사용자 모델을 정의할 경우, authenticate() 함수에는 username 매개변수를 사용해야 합니다.'
❗ authenticate() 함수는 username과 password 값만 유효한 값으로 받아들이기 때문에 내가 이용하고자하는 email은 커스텀 user 모델을 정의해야한다고한다.
→ 공식 문서 예시
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST["username"]
password = request.POST["password"]
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
...
else:
# Return an 'invalid login'
현재 문제는 알았으니 코드를 수정해서 실행해봐도 계속 None 값을 반환해서 어디서 부터 잘못된건지 다시 살펴보고있는중 ㅠㅜ 진도가 안나가는
'study > Django' 카테고리의 다른 글
한글 형태소 분석기 Okt (0) | 2023.07.03 |
---|---|
django.contrib.auth (0) | 2023.06.15 |
Template - 검색 결과 내 페이지네이션 (0) | 2023.05.22 |
Template 기본 구조 (0) | 2023.05.11 |
Django - AWS S3 파일 업로드 (0) | 2023.04.14 |
- Total
- Today
- Yesterday
- musma
- Python
- 면접을 위한 CS 전공 지식 노트
- 웹페이지
- git 공부
- python3
- django-environ
- 암호화
- 커맨드 객체
- git공부
- path variable
- django
- Magazine K
- error: failed to push some refs to 'https://github.com/
- 톰캣
- django.contrib.auth
- Spring
- 회원 로그인
- Java
- 디자인 패턴
- 한글 형태소 분석기
- 검색 결과 내 페이지네이션
- authenticate()
- API
- 회원가입
- Django tutorial
- 환경 변수 설정
- 혼자 공부하는 파이썬
- git
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |