Ошибка Django social-auth-app-django после завершения входа в социальную сеть

AttributeError at /social-auth/complete/github/ Объект 'NoneType' не имеет атрибута 'provider'

Другие решения на этом сайте не помогли решить проблему. Извините, если вы видите в этом подделку.

скопировано с reddit:

Здравствуйте! Надеюсь, у всех все хорошо. Как следует из названия, я продолжаю получать эту ошибку каждый раз, когда пытаюсь использовать социальный логин на своем сайте. Это для школы, и мы используем github для авторизации. Я считаю, что происходит следующее: данные социального авторизации пользователя отправляются куда-то еще, а не в базу данных социального авторизации пользователя. Причина, по которой я так думаю, заключается в том, что после того, как github авторизует мой аккаунт и происходит сбой, я вижу, что он правильно заносит мое имя пользователя и мой email из github в базу данных, я вижу это в моем админке. Я уверен, что проблема в том, что мои urlpatterns перенаправляют данные в чертово солнце, а не в базу данных социального аута пользователя. Опять же, я понятия не имею, как это исправить. Я занимаюсь этим уже около двух недель и не достиг никакого прогресса в решении этой проблемы,

То, что я пробовал:

Social_auth_pipeline, не работает

использование django_allauth приводит к краху сайта

Я менял настройки десятки раз, но контексты есть, приложения установлены, и у меня есть правильные перенаправления

Я менял свои urlpatterns десятки раз, похоже, ничего не изменилось

Я добавил код от других людей, у которых была такая же проблема, это не помогло

Я удалил код, скорее для того, чтобы посмотреть, что действительно работает, а что нет

ссылка на сайт. Так вы можете увидеть проблему в действии

https://rakunana.pythonanywhere.com

Весь код также находится на моем github. Так что не стесняйтесь копаться в коде.

https://github.com/RakuNana/School_Site

мой код urls.py:

import os

from django.contrib import admin
from django.urls import include, path
from django.views.generic import TemplateView
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.conf import settings
from django.views.static import serve


urlpatterns = [
    path('', TemplateView.as_view(template_name='home/main.html')),
    path('admin/', admin.site.urls),
    path('hello/',include('hello.urls')),
    path('polls/', include('polls.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('cats/' , include('cats.urls')),
    path('autos/', include('autos.urls')),
    path('ads/', include('ads.urls')),
    url('social-auth/', include('social_django.urls', namespace='social')),
]


# Serve the static HTML
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
urlpatterns += [
    url(r'^site/(?P<path>.*)$', serve,
        {'document_root': os.path.join(BASE_DIR, 'mysite'),
         'show_indexes': True},
        name='site_path'
        ),
]

# Serve the favicon - Keep for later
urlpatterns += [
    path('favicon.ico', serve, {
            'path': 'favicon.ico',
            'document_root': os.path.join(BASE_DIR, 'home/static'),
        }
    ),
]

try:
    from . import github_settings
    social_login = 'registration/login_social.html'
    urlpatterns.insert(0,
                       path('accounts/login/', 
auth_views.LoginView.as_view(template_name=social_login))
                  )
    print('Using', social_login, 'as the login template')
except:
    print('Using registration/login.html as the login template')

Заранее спасибо!

Решено. Проблема связана с Pythonanywhere и Github. Бесплатные аккаунты не могут получить исходящий запрос! Когда запрос social-auth пытается получить данные пользователя, он возвращает None, ВСЕГДА! Это происходит потому, что эти данные никогда не отправляются обратно в приложение Django. Проверено на моей собственной машине, с моим собственным localhost, и тот же самый код прекрасно работает без каких-либо изменений. В заключение, по какой-то причине Pythonanywhere и Github не передают информацию друг другу должным образом или прямо блокируют эту информацию. Не знаю почему, но я могу использовать приложение social auth без проблем на своей собственной машине.

Вернуться на верх