В общем, целый день вожусь с вк. Я создал приложение в нём, получил все ключи, вставил их. С моего сайта можно даже перейти на авторизацию, но оно спрашивает разрешаю ли я доступ приложухе, я говорю да, а потом вот такая херня:
Не могу найти абсолютно никакой инфы в инете по этому поводу. В логах никаких ошибок нету. Вот мои настройки подключения
Приложения
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.steam',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.telegram',
'allauth.socialaccount.providers.vk',
Настройки django-allauth
SOCIALACCOUNT_ADAPTER = "users.adapter.CustomAccountAdapter"
ACCOUNT_DEFAULT_HTTP_PROTOCOL = "http"
LOGIN_REDIRECT_URL = "/"
LOGOUT_REDIRECT_URL = "/"
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = "email"
SOCIALACCOUNT_LOGIN_ON_GET = True
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 10
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True
ACCOUNT_USERNAME_MIN_LENGTH = 3
SOCIALACCOUNT_EMAIL_VERIFICATION = False
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
},
'OAUTH_PKCE_ENABLED': True,
},
'steam': {
"APP": {
"client_id": '',
"secret": '9595E43689DC43CF9501449A2D6EF7D9',
"SCOPE": ["email"],
}
},
'telegram': {
'TOKEN': '6295839025:AAGwq1t-ys6NiDhfdrPPBAV9fveVRE1E5GQ'
},
'vk': {
'APP': {
'client_id': '51615744',
'secret': 'mPC0CCb7V6UlIdL0ufKe',
'key': '06a33b2606a33b2606a33b26bd05b0a326006a306a33b266299f55edb48dab5b56d9f1e'
},
"SCOPE": ["email"],
"FIELDS": ['id', 'email', 'first_name', 'last_name']
}
}
AUTH_BACKENDS
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"allauth.account.auth_backends.AuthenticationBackend",
)
Вот еще даже мой адаптер
class CustomAccountAdapter(DefaultSocialAccountAdapter):
def populate_user(self, request, sociallogin, data):
user = super().populate_user(request, sociallogin, data)
if data.get('first_name') and data.get('last_name'):
user.username = '@' + str(data['first_name'] + data['last_name']).lower()
elif data.get('full_name'):
user.username = '@' + str(data['full_name']).lower().replace(' ', '')
elif data.get('name'):
user.username = '@' + str(data['name']).lower()
elif data.get('username'):
user.username = '@' + str(data['username']).lower()
user.username = User.objects.generate_username(data['email'])
return user
def pre_social_login(self, request, sociallogin):
if sociallogin.account.provider == 'vk':
user = request.user
user.is_vk_authenticated = True
user.save()
return None
return super().pre_social_login(request, sociallogin)
Вот мои настройки приложения в вк
Вот настройка socialapplication в админке Django
Я БУДУ МЕГА БЛАГОДАРЕН ЗА ПОМОЩЬ!!!!!!!