반응형
장고에서 지원해주는 login을 아래와 처럼 import를 해주고 아래와 같은 형태로 작성하여 사용자 로그인에 대한 정보를 크게 신경쓰지 않았었다.
from django.contrib.auth import authenticate, login
def login(request):
'''
기타 필요 코드들
'''
if(request.method == "POST"):
form = UserForm(reuqest.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password) # 사용자 인증
login(request, user) # 로그인
return redirect('main:index')
'''
기타 코드들
'''
이번에 social login 관련 작업을 하면서 session을 어쩔 수 없이 사용을 하게 되었는데 특정 로직 동작 중 main으로 넘어갈 경우 입력된 session의 삭제가 필요하였다.
세션 등록
세션 등록은 아래와 같이 간단히 request.session안에 담으면 된다.
request.session['social_type'] = social_type
request.session['social_id'] = social_id
세션 삭제
session의 삭제 또는 수정을 위해서는 다음과 같은 절차가 필요하다.
1. session 삭제가 가능하도록 등록
2. session 삭제 또는 수정
try:
request.session.modified = True #세션 삭제 가능하도록 등록
del request.session['social_type'] #세션 삭제
del request.session['social_id'] #세션 삭제
except:
pass
필자는 아래와 같이 메인에서 삭제 해주도록 추가를 했고 잘 동작하고 있다.
계속 학습하며 개발을 하는 나중에 더 좋은 방법이 떠오르면 로직은 변경 예정....
728x90
'python' 카테고리의 다른 글
[python-django]스케쥴러(apschedular 사용) (0) | 2022.11.15 |
---|---|
[python-django]summernote 설치방법 - extra(Admin에 적용) (0) | 2022.11.04 |
[python-django] static, media 경로 지정(ngnix) 404 error (0) | 2022.11.01 |
[python-django]summernote 설치 방법(이미지 업로드까지) - 2부(완성) (0) | 2022.10.21 |
[python-django]summernote 설치 방법(이미지 업로드까지) - 1부 (0) | 2022.10.21 |
댓글