본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 웹 애플리케이션 개발하기: Django를 활용한 소셜 로그인 구현

by 포탈메이커 2023. 7. 14.

파이썬으로 웹 애플리케이션 개발하기: Django를 활용한 소셜 로그인 구현

소개

웹 애플리케이션을 개발할 때, 사용자 인증은 항상 중요한 이슈입니다. 사용자들에게 편리한 로그인 방식을 제공하기 위해, 소셜 로그인은 필수적인 기능이 되었습니다. 이번 포스팅에서는 Django를 활용하여 소셜 로그인을 구현하는 방법에 대해 알아보겠습니다.

Django 소셜 로그인

Django는 소셜 로그인을 구현하기 위한 다양한 라이브러리들을 제공합니다. 그 중에서도 django-allauth는 인기 있는 솔루션 중 하나입니다. django-allauth를 사용하면 손쉽게 여러 소셜 로그인 서비스를 지원할 수 있습니다.

먼저, Django 프로젝트를 생성한 후, django-allauth를 설치합니다. 다음 명령어를 사용하면 됩니다:

python pip install django-allauth

django-allauth를 설치했다면, settings.py 파일에서 애플리케이션을 등록하고 필요한 설정을 추가해야 합니다. 다음과 같이 설정해주세요:

```python INSTALLED_APPS = [ ... 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.facebook', ... ]

AUTHENTICATIONBACKENDS = [ 'django.contrib.auth.backends.ModelBackend', 'allauth.account.authbackends.AuthenticationBackend', ]

SITE_ID = 1

SOCIALACCOUNTPROVIDERS = { 'google': { 'SCOPE': ['profile', 'email'] }, 'facebook': { 'METHOD': 'oauth2', 'SCOPE': ['email', 'publicprofile', 'userfriends'], 'AUTHPARAMS': {'authtype': 'reauthenticate'}, 'LOCALEFUNC': lambda request: 'ko_KR', 'VERSION': 'v2.12', } } ```

위의 설정에서는 구글(Google)과 페이스북(Facebook) 소셜 로그인을 지원하도록 설정되어 있습니다. 사용하고자 하는 소셜 로그인 서비스에 대한 설정을 추가하고, 필요한 스코프(scope)나 파라미터를 설정해주셔야 합니다.

로그인 기능을 추가하기 위해, 프로젝트의 URL 설정 파일(urls.py)에 다음과 같이 URL 패턴을 추가해주세요:

```python from django.urls import include, path

urlpatterns = [ ... path('accounts/', include('allauth.urls')), ... ] ```

accounts/ 경로로 시작하는 URL은 allauth 라이브러리가 처리하게 됩니다. 이제 소셜 로그인을 위한 URL이 제대로 동작하도록 설정되었습니다.

마지막으로, Django의 템플릿을 사용하여 로그인 버튼을 추가해줍니다. 로그인 버튼을 추가할 템플릿 파일에 다음 코드를 작성해주세요:

```html {% load socialaccount %}

{% providersmediajs %}

```

위의 코드는 구글과 페이스북 로그인 버튼을 추가하는 예시입니다. 사용하고자 하는 소셜 로그인 서비스의 버튼을 추가해주시면 됩니다.

이제 소셜 로그인 기능이 완성되었습니다. 사용자는 구글이나 페이스북 계정으로 로그인할 수 있게 됩니다.

마치며

이번 포스팅에서는 Django를 사용하여 소셜 로그인을 구현하는 방법에 대해 알아보았습니다. django-allauth를 활용하면 다양한 소셜 로그인 서비스를 손쉽게 구현할 수 있습니다. 사용자 인증을 효과적으로 관리하기 위해 소셜 로그인 기능을 추가해보세요.

더 많은 Django 기능에 대해 알아보고 싶다면, Django 공식 문서를 참고해보시길 추천합니다.