@max3277

Как в django сделать авторизацию через вк по email?

Сделал кастомную модель пользователя, где авторизация в django происходит по email, а не по логину.
# users/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models


class CustomUser(AbstractUser):
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []
    email = models.EmailField(unique=True)


Форма регистрации пользователя
# users/forms.py
from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm

from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = CustomUser
        fields = ('email',) # new

class CustomUserChangeForm(UserChangeForm):
    class Meta:
        model = CustomUser
        fields = ('email', ) # new


Авторизацию вк использую через django-social-auth. Проблема заключается в том, что не у всех пользователей есть почта на странице вк и возникает ошибка Duplicate entry '' for key 'users_customuser_email

1. Как спрашивать email принудительно у пользователя.
2. Стоит ли связывать пользователей Django и пользователей вк по email?
3. Как переделать бэкэнд авторизации вк через почту, а не по логину.
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы