인터넷 사용자들은 소셜 로그인을 통해 다양한 웹사이트 및 애플리케이션에 쉽게 가입하고 로그인할 수 있습니다. 이번 포스트에서는 파이썬과 Django 프레임워크를 사용하여 소셜 로그인을 구현하는 방법을 알아보겠습니다.
1. 소셜 로그인을 위한 준비
먼저, Django 프로젝트를 생성하고 설정합니다. 그리고 소셜 로그인을 지원하는 Python 패키지 중 하나인 django-allauth를 설치합니다.
pip install django-allauth
설치가 완료되면 settings.py
파일에 다음과 같이 소셜 로그인을 위한 설정을 추가합니다.
# settings.py
INSTALLED_APPS = [
...
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
...
]
AUTHENTICATION_BACKENDS = [
...
'allauth.account.auth_backends.AuthenticationBackend',
...
]
SITE_ID = 1
LOGIN_REDIRECT_URL = '/'
2. Google 소셜 로그인 구현
이제, Google 소셜 로그인을 구현해보겠습니다. 먼저, Google API Console에서 프로젝트를 생성하고 OAuth 2.0 클라이언트 ID를 발급받습니다. 발급받은 클라이언트 ID와 시크릿 키를 settings.py
파일에 추가합니다.
# settings.py
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_STORE_TOKENS = False
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'your-client-id'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'your-client-secret'
이제 아래와 같이 유저가 Google로부터 인증을 수락할 수 있도록 템플릿을 업데이트합니다.
<!-- google_login.html -->
<a href="{% provider_login_url 'google' %}">Google로 로그인</a>
3. Facebook 소셜 로그인 구현
마찬가지로, Facebook 소셜 로그인 또한 간단하게 구현할 수 있습니다. 먼저, Facebook Developer 사이트에서 애플리케이션을 생성하고 앱 ID 및 시크릿 키를 발급받습니다. 이후 settings.py
파일에 다음과 같이 설정을 추가합니다.
# settings.py
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'METHOD': 'oauth2',
'SCOPE': ['email', 'public_profile'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'INIT_PARAMS': {'cookie': True},
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name'
],
'EXCHANGE_TOKEN': True,
'LOCALE_FUNC': 'path.to.callable',
'VERIFIED_EMAIL': False,
'VERSION': 'v3.0',
}
}
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_STORE_TOKENS = False
SOCIAL_AUTH_FACEBOOK_KEY = 'your-app-id'
SOCIAL_AUTH_FACEBOOK_SECRET = 'your-app-secret'
이후 아래와 같이 Facebook으로 로그인할 수 있는 링크를 템플릿에 추가합니다.
<!-- facebook_login.html -->
<a href="{% provider_login_url 'facebook' %}">Facebook으로 로그인</a>
마무리
이제 소셜 로그인이 구현된 Django 애플리케이션을 실행해보세요. 사용자들은 Google이나 Facebook 계정을 통해 간편하게 로그인할 수 있게 될 것입니다.
이상으로, 파이썬을 이용한 소셜 로그인 구현 방법에 대해 알아보았습니다. 다음은 여러분이 이를 실제 프로젝트에 적용하여 사용자 경험을 향상시킬 수 있기를 바랍니다.