티스토리 뷰
소셜로그인 때부터 이 녀석이 떠서 뭔지 정리해보았습니다.
You have multiple authentication backends configured and therefore must provide the `backend` argument or set the `backend` attribute on the user.
영어가 부족한 관계로 파파고의 힘을 얻어보았습니다 ㅎㅎㅎ (사실 해석할 줄 압니다.)
인증 백엔드가 여러 개 구성되어 있으므로 '백엔드' 인수를 제공하거나 사용자에게 '백엔드' 특성을 설정해야 합니다.
라고 하네요.
소셜로그인 기능을 추가하느라 구글 이메일 정보를 따와서 백엔드가 중첩되어 생긴 에러였습니다. 그렇기 때문에 로그인할 때 user의 정보를 어느 백엔드에서 가져와야할지를 설정해주어야합니다.방법은 간단합니다.
기존의 auth.login(request, user) 부분을 다음과 같이 바꿔주면 됩니다.
auth.login(request, user, backend='django.contrib.auth.backends.ModelBackend')
소셜로그인과 기존의 로그인 모두 admin으로 확인해보면 모두 auth의 User에 저장이 되어있으므로 이 녀석으로 해결할 수 있습니다. 소셜로그인으로 가져온 정보를 다른 곳에 저장한다면 맨 뒤의 ModelBackend 부분을 수정하면 됩니다.
'django' 카테고리의 다른 글
django / 검색 기능 (0) | 2021.01.03 |
---|---|
django / 게시글 정렬 구현 (0) | 2021.01.03 |
django / 비밀번호 변경 (0) | 2020.12.29 |
django / 소셜 로그인 구현 (0) | 2020.12.29 |
django / 댓글 기능 구현 (0) | 2020.12.25 |
댓글