1번째 줄: |
1번째 줄: |
| | | |
| ==개요== | | ==개요== |
− | 유명하지 않은 사이트의 계정을 다 기억하는 건 참 어려운 일. 이럴 땐 공신력을 갖춘 외부 서비스의 인증기능에 위임하여 사용하면 편하다. | + | sns 로그인. 유명하지 않은 사이트의 계정을 다 기억하는 건 참 어려운 일. 이럴 땐 공신력을 갖춘 외부 서비스의 인증기능에 위임하여 사용하면 편하다. |
| | | |
| === 들어가기 전에 === | | === 들어가기 전에 === |
− | 소셜 로그인을 구현한 후 [[회원관리 2. 커스텀유저(AbstractUser 이용)|커스텀 유저 만들기]]를 진행하는 중 DB를 지우고 말았다. 이후 소셜로그인을 다시 구현하는 데 실패했다. 이후 조금이라도 커스텀 유저모델을 사용할 기미가 보인다면 미리 만들어 두고 소셜 로그인을 구현하는 편이 좋다.<br /> | + | 소셜 로그인을 구현한 후 [[회원관리 2. 커스텀유저(AbstractUser 이용)|커스텀 유저 만들기]]를 진행하는 중 DB를 지우고 말았다. 이후 소셜로그인을 다시 구현하는 데 실패했다. |
| + | |
| + | 이후 조금이라도 커스텀 유저모델을 사용할 기미가 보인다면 이를 미리 만들어 둔 후에 소셜 로그인을 구현하는 편이 좋다.<br /> |
| | | |
| ==사전작업== | | ==사전작업== |
10번째 줄: |
12번째 줄: |
| | | |
| ===settings.py 설정=== | | ===settings.py 설정=== |
− | <code>INSTALLED_APPS = [</code>하위에 다음과 같은 내용들을 추가해 넣어준다.<syntaxhighlight lang="python"> | + | {| class="wikitable" |
| + | !과정 |
| + | !설명 |
| + | !코드 |
| + | |- |
| + | | rowspan="2" |<code>INSTALLED_APPS</code> |
| + | |<code>INSTALLED_APPS</code> 하위에 우측 앱들을 추가한다. |
| + | |<syntaxhighlight lang="python"> |
| 'django.contrib.sites', # 사이트 정보를 설정하기 위해 필요 | | 'django.contrib.sites', # 사이트 정보를 설정하기 위해 필요 |
| # allauth 관련 앱 목록 추가 | | # allauth 관련 앱 목록 추가 |
16번째 줄: |
25번째 줄: |
| 'allauth.account', # 가입한 계정을 관리하기 위한 것. | | 'allauth.account', # 가입한 계정을 관리하기 위한 것. |
| 'allauth.socialaccount', # 소셜 계정을 관리하기 위한 것. | | 'allauth.socialaccount', # 소셜 계정을 관리하기 위한 것. |
| + | </syntaxhighlight> |
| + | |- |
| + | |<code>INSTALLED_APPS</code> 하위에 서비스 해준 sns 계정을 추가한다. |
| + | 사용 가능한 공급자는 다음 [https://django-allauth.readthedocs.io/en/latest/providers.html 링크]에서 확인하자. |
| + | |<syntaxhighlight lang="python"> |
| # 사용할 외부기능을 추가한다. | | # 사용할 외부기능을 추가한다. |
| 'allauth.socialaccount.providers.naver', | | 'allauth.socialaccount.providers.naver', |
| 'allauth.socialaccount.providers.google', | | 'allauth.socialaccount.providers.google', |
− | | + | </syntaxhighlight> |
− | #이미 있다면, 하위에 추가. | + | |- |
| + | |AUTHENTICATION_BACKENDS |
| + | |AUTHENTICATION_BACKENDS 하위에 추가한다. |
| + | (일반적으로 없어, 우측의 코드를 다 써주면 된다.) |
| + | |<syntaxhighlight lang="python"> |
| + | # 이미 있다면, 하위에 추가. |
| AUTHENTICATION_BACKENDS = [ | | AUTHENTICATION_BACKENDS = [ |
| # Needed to login by username in Django admin, regardless of `allauth` | | # Needed to login by username in Django admin, regardless of `allauth` |
27번째 줄: |
46번째 줄: |
| 'allauth.account.auth_backends.AuthenticationBackend', | | 'allauth.account.auth_backends.AuthenticationBackend', |
| ] | | ] |
− |
| |
− | #TEMPLATES의 하위의 context_processors 아래에 'django.template.context_processors.request',를 추가해넣는다.
| |
− | 'context_processors': [
| |
− | 'django.template.context_processors.request',
| |
| </syntaxhighlight> | | </syntaxhighlight> |
− | | + | |- |
| + | |context_processors |
| + | |TEMPLATES의 하위의 context_processors 아래에 'django.template.context_processors.request',를 추가해넣는다. |
| + | |<syntaxhighlight lang="python"> |
| + | 'context_processors': [ |
| + | 'django.template.context_processors.request', |
| + | ... |
| + | </syntaxhighlight> |
| + | |} |
| ===urls.py 설정=== | | ===urls.py 설정=== |
| 다음과 같이 url을 추가해준다.<syntaxhighlight lang="python"> | | 다음과 같이 url을 추가해준다.<syntaxhighlight lang="python"> |