• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

Django allauth를 사용한 소셜 로그인 시 에러

23.12.13 22:56 작성 23.12.13 22:59 수정 조회수 281

0

안녕하세요. 강의 잘 듣고 있습니다 :)

강의 내용과는 상관없지만, 개인 프로젝트에서 소셜로그인을 사용할 일이 있어 테스트해보고 있습니다.

https://egg-money.tistory.com/117

이 글을 참고하여 구현했는데 구글 로그인 선택 후 계정 선택 화면을 넘어간 후에 아래와 같은 상황이 발생합니다.

admin 페이지를 확인해보니 user에 정보가 저장되지 않았습니다. 이에 대한 해결 방법이 있을까요?

pip freeze를 통해 출력한 버전은 다음과 같습니다.

asgiref==3.7.2
asttokens==2.4.1
cachetools==5.3.2        
certifi==2023.11.17      
cffi==1.16.0
charset-normalizer==3.3.2
colorama==0.4.6
contourpy==1.2.0
cryptography==41.0.7     
cycler==0.12.1
decorator==5.1.1
defusedxml==0.7.1        
dj-rest-auth==5.0.2      
Django==5.0
django-allauth==0.58.2
django-cors-headers==4.3.1
django-debug-toolbar==4.2.0
django-dotenv==1.4.2
django-pydenticon==0.2
djangorestframework==3.14.0
djangorestframework-simplejwt==5.3.1
et-xmlfile==1.1.0
executing==2.0.1
fonttools==4.46.0
google-auth==2.25.1
google-auth-oauthlib==1.1.0
gspread==5.12.2
httplib2==0.22.0
idna==3.6
ipython==8.18.1
jedi==0.19.1
joblib==1.3.2
kiwisolver==1.4.5
matplotlib==3.8.2
matplotlib-inline==0.1.6
numpy==1.26.2
oauth2client==4.1.3
oauthlib==3.2.2
openpyxl==3.1.2
packaging==23.2
pandas==2.1.3
parso==0.8.3
Pillow==10.1.0
prompt-toolkit==3.0.43
pure-eval==0.2.2
pyasn1==0.5.1
pyasn1-modules==0.3.0
pycparser==2.21
pydenticon==0.3.1
Pygments==2.17.2
PyJWT==2.8.0
pyparsing==3.1.1
PyQt5==5.15.10
PyQt5-Qt5==5.15.2
PyQt5-sip==12.13.0
python-dateutil==2.8.2
python3-openid==3.2.0
pytz==2023.3.post1
requests==2.31.0
requests-oauthlib==1.3.1
rsa==4.9
scikit-learn==1.3.2
scipy==1.11.4
six==1.16.0
sqlparse==0.4.4
stack-data==0.6.3
threadpoolctl==3.2.0
traitlets==5.14.0
tzdata==2023.3
urllib3==2.1.0
wcwidth==0.2.12

답변 1

답변을 작성해보세요.

0

안녕하세요.

제가 현재 강의 리뉴얼로 바빠서, 질문주신 내용을 하나 하나 살펴볼 여력이 없네요. 😢

django allauth 에서의 구글 인증에 대해서 다른 문서도 참고해보시면 어떨까요? 살펴보시는 과정에서 디테일하게 질문을 주시면, 저도 답변을 드릴 수 있을 듯 합니다.

도움이 못 되어드려서 죄송하고, 화이팅입니다~!!!

해결했습니다 감사합니다!

혹시 비슷한 문제를 겪고 계신 분들을 위해 해결 방법을 말씀드리면

저는 프로젝트 settings.py에 SITE_ID=1 을 추가해 해결했습니다. 혹시 이미 해당 줄이 추가되어 있는 분들은 1을 2로 변경해보면 됩니다!

잘 해결되셔서 다행입니다. :-)

장고에서는 하나의 장고 프로세스에서 다수의 도메인 서비스를 지원하는 sites framework를 지원하고 있습니다. django.contrib.sites 앱을 통해 지원됩니다.

django-allauth도 sites framework를 지원합니다. SITE_ID=1 설정은 django-allauth에서 디폴트 Site로서 pk=1 을 참조하라는 설정입니다. 대개 단일 도메인으로 서비스되니, 데이터베이스에 pk=1이 되는 Site 인스턴스를 하나만 생성하시고 settings에 SITE_ID=1 설정을 두시면 됩니다. (값은 특별히 상관없습니다.)

여러 도메인으로 서비스하신다면 SITE_ID 설정은 제거하시고 도메인에 맞춰 Site 를 생성해두시면 그에 맞춰 서비스됩니다.

image

화이팅입니다. :-)