Python 社交身份验证 "AuthForbidden"

Python social auth "AuthForbidden"

我正在尝试使用 social-auth 获得 google 与 django 一起使用的身份验证,但到目前为止我还没有成功。其他带有类似错误消息的问题表明它可能是由白名单引起的,但我想在我的应用程序中接受所有 gmail 后缀。 (不需要白名单)

INSTALLED_APPS = [
    'livereload',  # TODO Remove when finished
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'dashboard.apps.DashboardConfig',
    'user.apps.UserConfig',
    'social_django'
]

'social_django.context_processors.backends''social_django.context_processors.login_redirect' 都在我 settings.py 的上下文处理器中。

AUTHENTICATION_BACKENDS = (
 'social_core.backends.open_id.OpenIdAuth',  # for Google authentication
 'social_core.backends.google.GoogleOpenId',  # for Google authentication
 'social_core.backends.google.GoogleOAuth2',  # for Google authentication
 'django.contrib.auth.backends.ModelBackend',
)
urlpatterns = [
    path('dashboard/', include("dashboard.urls", namespace="dashboard")),
    path('admin/', admin.site.urls),
    path('login/', auth_views.LoginView.as_view(), name="login"),
    path('logout/', auth_views.LogoutView.as_view(), name="logout"),
    path('auth/', include("social_django.urls", namespace="social")),
]

当我使用 google 登录并被重定向到我的身份验证 url 时,我收到消息:

AuthForbidden at /auth/complete/google-oauth2/
Your credentials aren't allowed

如何让它正常工作?

编辑:我正在查看错误消息并找到了这个,如果这对任何人有帮助的话。

http_error_msg = ('401 Client Error: Unauthorized for url: 'https://accounts.google.com/o/oauth2/token')

reason = 'Unauthorized'

self = <Response [401]>

经过几天漫长的故障排除,归结为几个我应该更加注意的问题。

  1. 确保您的客户端 ID 和密码正确,末尾没有空格。
  2. 确保在凭据屏幕(在 Google 的云控制台上)您同时提供了 javascript 和重定向 URL,这似乎是让我感到困惑的原因。