【问题标题】:Facebook Oauth works but Google Oauth2 error : redirect_uri_mismatch in DjangoFacebook Oauth 有效,但 Google Oauth2 错误:Django 中的 redirect_uri_mismatch
【发布时间】:2020-05-07 13:51:30
【问题描述】:

我有一个 Django 项目,我想在其中使用 Google 和 Facebook 登录功能。通过下面给出的设置,我可以使用 Facebook 登录,但是在尝试使用 Google 登录时,我不断收到:Error: redirect_uri_mismatch

我已尝试在授权重定向 URI 中跟踪 url

http://localhost:8000

http://localhost:8000/complete/google-oauth2/

http://localhost:8000/oauth/complete/google-oauth2/

Settings.py

INSTALLED_APPS= [
     ...
    'social_django',  # <-- social-auth-app-django
    ....
]

MIDDLEWARE = [
 ....
 'social_django.middleware.SocialAuthExceptionMiddleware',
....
]

TEMPLATES = [
.....
'OPTIONS':{
....
'social_django.context_processors.backends',  # <-- related to social auth
'social_django.context_processors.login_redirect', # <--  related to social auth
}
]

AUTHENTICATION_BACKENDS = (
    'social_core.backends.facebook.FacebookOAuth2',
    'social_core.backends.google.GoogleOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)



LOGIN_URL = 'login'
LOGOUT_URL = 'logout'
LOGIN_REDIRECT_URL = 'core:landing_page'
LOGOUT_REDIRECT_URL = 'core:landing_page'

MEDIA_ROOT = os.path.join(BASE_DIR,'pictures')
MEDIA_URL = '/pictures/'



ACCOUNT_DEFAULT_HTTP_PROTOCOL='https'
SOCIAL_AUTH_URL_NAMESPACE = 'social'

#facebook social auth details
SOCIAL_AUTH_FACEBOOK_KEY = 'XXXXXXXXXXXXXX'  # App ID
SOCIAL_AUTH_FACEBOOK_SECRET = 'XXXXXXXXXXXXXXXXXXXXX'  # App Secret


#google social auth details
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'XXXXXXX-XXXXX.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'XXXXXXXXXXXXXX'

在 urls.py 中

    path('oauth/', include('social_django.urls', namespace='social')),  # <-- social auth url

在 html 中

    <a class="btn button_google" href="{% url 'social:begin' 'google-oauth2' %}">LOGIN</a>

在 google+ api 中

【问题讨论】:

  • 我认为http://localhost:8000/oauth/complete/google-oauth2/ 应该可以工作。添加它,等待一段时间,然后尝试?
  • 由于某种原因,当我尝试使用 http://localhost:8000/oauth/complete/google-oauth2/ 时它立即起作用了,我不知道我之前做错了什么

标签: python django google-oauth facebook-oauth


【解决方案1】:

根据您的网址,http://localhost:8000/oauth/complete/google-oauth2/ 是正确的。

确保没有拼写错误等。

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 2013-07-31
    • 2021-06-22
    • 1970-01-01
    • 2014-02-09
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    相关资源
    最近更新 更多