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]>
经过几天漫长的故障排除,归结为几个我应该更加注意的问题。
- 确保您的客户端 ID 和密码正确,末尾没有空格。
- 确保在凭据屏幕(在 Google 的云控制台上)您同时提供了 javascript 和重定向 URL,这似乎是让我感到困惑的原因。
我正在尝试使用 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]>
经过几天漫长的故障排除,归结为几个我应该更加注意的问题。
- 确保您的客户端 ID 和密码正确,末尾没有空格。
- 确保在凭据屏幕(在 Google 的云控制台上)您同时提供了 javascript 和重定向 URL,这似乎是让我感到困惑的原因。