본문 바로가기
프레임워크/Django

[allauth] allauth 비밀번호 변경후 리다이렉트

by nahkim 2023. 5. 27.

이슈 내용


allauth 비밀번호 변경시 메인 페이지로 리다이렉트 시키게 변경

'AnonymousUser' object has no attribute 'has_usable_password' 발생

→ allauth의 PasswordChangeView의 success_url 오버라이딩 + url 추가

작동 잘됨

 

그러나 allauth 로그인이 안된 상태에서 비밀번호 변경시 에러

→ 로그인을 안했을 경우 로그인 페이지로 리다이렉트 시키려했지만 에러 발생

url이 http://localhost:8000/accounts/login/?next=/password/change/

로 변경되며 page not found 뜸

 

→ 로그인이 안된 상태로 인증을 완료했을 경우 리다이렉트되는 URL 설정을 안해줘서난 오류 (기본적으로 accounts/login 으로 이동하지만 우리는 /login이기에 오류가 생긴 것)

 

해결 방법


allauth의 PasswordChangeView의 success_url 오버라이딩

# views.py

class CustomPasswordChangeView(LoginRequiredMixin, PasswordChangeView):
    success_url = reverse_lazy("main")

url 추가

# urls.py

# allauth.urls보다 위에 설정해줘야함!
urlpatterns = [
   
    path(
        "password/change/",
        CustomPasswordChangeView.as_view(),
        name="account_password_change",
    ),
    path("", include("allauth.urls")),
]

로그인이 안된 상태로 인증을 완료했을 경우 리다이렉트되는 URL 설정

# settings.py

LOGIN_URL = "/login"

 

참고 자료


 

 

Django-allauth: PasswordChangeView override of success_url with logged out user results in error

When changing a password via django-allauth, the default redirect after successfully posting the password change is again the password change template. Since I find this confusing, I overrode the

stackoverflow.com

 

 

 

[Django] 장고 유저 기능 구현하기 #11 ( 비밀번호 관리 기능)

2021.12.20 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #10 (이메일 인증 기능) [Django] 장고 유저 기능 구현하기 #10 (이메일 인증 기능) 2021.12.19 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #9 (

programmers-sosin.tistory.com

 

 

조누스의 걸음마 개발로그

안녕하세요 열정괴물 신입개발자 조누스의 개발로그입니다.

jonushk.github.io

 

 

[Django] allauth 패키지

django-allauth 패키지란? 장고에서 유저 기능 구현을 위해 쓰이는 패키지 입니다. 장고에서 제공하는 것들 중 django.contrib.auth와 django-allauth가 있는데요, 이 둘의 차이는 다음과 같습니다. django.contrib.

tomatobaconsoup.tistory.com

 

 

[Django] allauth URL 및 세팅

2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #3 (all-auth 사용 셋팅) [Django] 장고 유저 기능 구현하기 #3 (all-auth 사용 셋팅) 2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #2 ( 유저

programmers-sosin.tistory.com