장고 - django allauth 사용(facebook 연동)
- facebook은 https에 한해서 연동되므로, 앞서 포스팅했던 openssl로 인증서 생성 및 해당 프로젝트로 파일 이동시킨 후, 아래와 같은 절차를 따른다.
1. django-allauth 설치
pip install django-allauth
2. settings.py의 INSTALLED_APPS 추가
INSTALLED_APPS = [
...
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]
3. settings.py에 AUTHENTICATION_BACKENDS 추가
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
4. 사용하고자 하는 프로바이더 추가
INSTALLED_APPS = [
...
'allauth.socialaccount.providers.facebook',
]
5. settings.py에 SITE_ID 값 추가
SITE_ID = 1
6. urls.py에 allauth 관련 라우팅 추가
urlpattterns = [
...
path('accounts/', include('allauth.urls')),
]
7. migrate 명령 실행
$ python manage.py migrate
8. 페이스북 개발자 사이트로 이동하여 앱 등록
- https://developers.facebook.com/?locale=ko_KR 이동
- 로그인 후, [새 앱 추가] 버튼 클릭
9. 앱 이름과 이메일 입력 후, [앱 ID 만들기] 버튼 클릭
10. 앱 기능 중, Facebook 로그인 통합에 체크 및 [확인] 버튼 클릭
11. 화면 하단 ‘내 제품’ 목록에서 Facebook 로그인의 [설정] 버튼 클릭
12. 유효한 Oauth 리디렉션 URI에 서버 주소 입력 및 [변경 내용 저장] 버튼 클릭
13. 앱 기본 설정 페이지로 이동하여 앱 ID와 시크릿 코드 확인
14. 관리자 페이지 Social application에 새로운 설정 추가
- Provider : Facebook
- 이름 입력
- Client Id, Secret Key : 페이스북 앱 화면에서 복사 붙여넣기
- sites : ‘Available sites’의 example.com을 우측 ‘Chosen sites’로 이동
15. 로그인 페이지에 접속해 Facebook 버튼 클릭
- …/accounts/login 페이지 이동하여 Facebook 로그인
- …/accounts/profile 페이지로 이동한다면, settings.py에 아래 코드 추가
- `LOGIN_REDIRECT_URL = ‘/‘
Posted