All-auth не работает должным образом с djongo, показывает DatabaseError в /accounts/google/login/callback/

Я внедряю all-auth для аутентификации google oauth в django. Ранее, когда я использовал стандартную конфигурацию базы данных sqlite, все работало нормально (я настроил api в консоли разработчика и добавил его в socialapplications с правильной конфигурацией сайта). Но когда я переместил базу данных на mongodb с помощью djongo со следующей конфигурацией базы данных вместо стандартной

# Database
# https://docs.djangoproject.com/en/4.0/ref/settings/#databases

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': BASE_DIR / 'db.sqlite3',
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'teqsrch'
    }
}

он выдает следующую ошибку при попытке аутентификации с помощью google oauth (но аутентификация с помощью обычной регистрации и входа все еще работает, так что это не проблема с базой данных)

Метод запроса: GET URL запроса: http://127.0.0.1:8000/accounts/google/login/callback/?state=FhTF1EeKyY0T&code=4%2F0AX4XfWi8PEE5Z6eCdaOWJrB8tIPHYE10OcnT7z25MPELbvJfDQlXn5PUHFT2ipb0OnanBQ&scope=email+profile+https%3A%2F%2Fwww. googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&authuser=1&prompt=consent

.

хотя пользователь и добавляется в базу данных, но даже после этого он не может войти в систему, используя oauth.

Другая информация:

  • Я реализовал пользовательскую модель User со следующими полями

    email                   = models.EmailField(verbose_name="email", max_length=60, unique=True)
    username                = models.CharField(max_length=30, unique=True)
    firstname              = models.CharField(verbose_name='first name', max_length=30, default="firstname")
    lastname               = models.CharField(verbose_name='last name', max_length=30, default="lastname")
    date_joined             = models.DateTimeField(verbose_name='date joined', auto_now_add=True)
    last_login              = models.DateTimeField(verbose_name='last login', auto_now=True)
    is_active               = models.BooleanField(default=True)
    is_admin                = models.BooleanField(default=False)
    is_staff                = models.BooleanField(default=False)
    is_superuser            = models.BooleanField(default=False)
    email_confirmed         = models.BooleanField(default=False)
    
Вернуться на верх