Django Allauth
django-allauth - это комплексное решение для аутентификации в Django, поддерживающее социальные провайдеры.
Установка
Настройка settings.py
1INSTALLED_APPS = [
2 'django.contrib.auth',
3 'django.contrib.messages',
4 'allauth',
5 'allauth.account',
6 'allauth.socialaccount',
7 'allauth.socialaccount.providers.google',
8 'allauth.socialaccount.providers.github',
9]
10
11AUTHENTICATION_BACKENDS = [
12 'django.contrib.auth.backends.ModelBackend',
13 'allauth.account.auth_backends.AuthenticationBackend',
14]
15
16SOCIALACCOUNT_PROVIDERS = {
17 'google': {
18 'SCOPE': ['profile', 'email'],
19 'AUTH_PARAMS': {'access_type': 'online'},
20 }
21}
Конфигурация URLs
Настройка Google OAuth
1# settings.py
2SOCIALACCOUNT_PROVIDERS = {
3 'google': {
4 'SCOPE': [
5 'profile',
6 'email',
7 ],
8 'AUTH_PARAMS': {
9 'access_type': 'online',
10 }
11 }
12}
13
14# В админке создай Social Application
15# Provider: Google
16# Client ID: ваш Google OAuth Client ID
17# Secret Key: ваш Google OAuth Secret
Кастомизация шаблонов
FAQ
Q: Как получить дополнительные данные от провайдера?
A: Настрой SCOPE в SOCIALACCOUNT_PROVIDERS и используй сигналы.
Q: Можно ли кастомизировать процесс регистрации?
A: Да, используй кастомные адаптеры и формы.