Django Google 로그인

leecw4u·2023년 12월 28일
0

Django

목록 보기
15/15
post-thumbnail

🎨 배경

pip install django-allauth

Django allauth
로 웹에 구글 로그인 기능을 추가했다. 쉽게 구현할거라 생각했지만, 여러 문제가 있었고 해결했던 것을 여기에 남겨놓으려 합니다...

🧪 문제

공식문서를 잘 따라가던 와중 다음과 같은 문제가 생겼습니다.

django.core.exceptions.MultipleObjectsReturned

구글 API Oauth로 분명히 계정은 하나 만들었는데 여러개가 리턴이 되었다니 그게 무슨말이요!!!!

항상 그렇듯이 프로그램은 아무런 잘못이 없죠...ㅎㅎ
Stackoverflow 에 따르면 admin에 추가한 계정과 Settings.py에 설정된 SOCIALACCOUNT_PROVIDERS가 서로 충돌해서 발생한다는 것이었다. Setting.py에 설정된 계정을 지워줬더니 해결되었습니다.

# Provider specific settings
SOCIALACCOUNT_PROVIDERS = {
    'google': {
        # For each OAuth based provider, either add a ``SocialApp``
        # (``socialaccount`` app) containing the required client
        # credentials, or list them here:
        'APP': {
            'client_id': '123',
            'secret': '456',
            'key': ''
        }
    }
}

공식문서 양반... 왜 이게 필수적으로 필요하다는 듯이 적어놓은것이요...🥲

이 이외에도 여러 문제가 있었지만 다음과 같이 해결하였습니다.

django.db.utils.OperationalError: no such table: account_emailaddress

migration 확인

allauth.socialaccount.models.SocialApp.DoesNotExist

socialaccount 만들기

🪛 보완할 점

  1. TDD로 개발하고 있는데 DB에 올라가있는 계정을 사용할 수 없어 TEST를 할 때 마다 SOCIALACCOUNT_PROVIDERS의 주석을 풀어야합니다.(몇 번은 괜찮지만 계속 이런 짓은 너무 귀찮고 옳은 짓은 아니겠다는 생각이 듭니다.)
  2. 공식문서에는 없는 SITE_ID = 1을 추가해줬는데 이게 뭔지 모르는 동시에 예전 방식이라는 느낌이 많이 듭니다. 어서 빨리 공부해보고 제거해야 될 것 같습니다.
profile
초보 개발자의 끄적끄적 스터디 블로그

0개의 댓글

관련 채용 정보