python - Facebook Oauth 有效,但 Google Oauth2 错误:Django 中的 redirect_uri_mismatch
问题描述
我有一个 Django 项目,我想在其中使用 Google 和 Facebook 登录功能。通过下面给出的设置,我可以使用 Facebook 登录,但是在尝试使用 Google 登录时,我不断收到:错误:redirect_uri_mismatch
我已经尝试在授权重定向 URI 中关注 url
http://localhost:8000/complete/google-oauth2/
http://localhost:8000/oauth/complete/google-oauth2/
设置.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>
解决方案
根据您的网址,http://localhost:8000/oauth/complete/google-oauth2/
是正确的。
确保没有拼写错误等。
推荐阅读
- ios - 推送通知 IOS:标准有效负载格式
- css - 如何通过溢出隐藏的子文本来防止父扩展?
- java - 通过在图表graphview android中绘制每个点来动画图表
- java - 使用java递归重命名文件夹名称
- r - R中的条形图图例
- reactjs - 为什么我的子 React 组件只有一部分显示在父 React 组件中?
- security - 我将如何强制我的页面*仅*在 iframe 中加载
- html - 关闭语义中的 ui 下拉菜单
- c# - 在控制器中从excel导入数据时如何检查excel文件中是否存在特定列?
- ios - UIAlertController 在 swift 3 的启动视图中不起作用