Django中Facebook登录失败求助:重定向失败及HTTPS报错
Facebook登录配置报错排查求助
问题详情
- Google登录已完成配置并正常运行,但Facebook登录持续报错(对应截图:Facebook登录报错)
- 若移除HTTP方法限制,会触发新报错:
You can't get an access token or login to this app from an insecure page. Try re-loading the page as https:// - 已在Facebook开发者后台正确添加Client ID和密钥,问题已持续两天未解决
- 补充配置截图:Facebook相关配置截图
当前配置代码
SOCIALACCOUNT_PROVIDERS = { 'google': { 'SCOPE': [ 'profile', 'email', ], 'AUTH_PARAMS': { 'access_type': 'online', } } } \ { 'facebook': { 'METHOD': 'oauth2', # 'SDK_URL': '//connect.facebook.net/{locale}/sdk.js', 'SCOPE': ['email', 'public_profile'], 'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'INIT_PARAMS': {'cookie': True}, 'FIELDS': [ 'id', \"email\" 'first_name', 'last_name', 'middle_name', 'name', 'name_format', 'picture', 'short_name' ], 'EXCHANGE_TOKEN': True, 'LOCALE_FUNC': 'path.to.callable', 'VERIFIED_EMAIL': False, 'VERSION': 'v13.0', 'GRAPH_API_URL': 'https://graph.facebook.com/v13.0', } } ACCOUNT_DEFAULT_HTTP_PROTOCOL=\"https\" ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_AUTHENTICATION_METHOD = 'email'
排查修复建议
修正配置语法错误
原配置中SOCIALACCOUNT_PROVIDERS被拆分为两个独立字典,且FIELDS列表内email字段缺少逗号,会直接导致配置失效。修正后的完整配置如下:SOCIALACCOUNT_PROVIDERS = { 'google': { 'SCOPE': ['profile', 'email'], 'AUTH_PARAMS': {'access_type': 'online'} }, 'facebook': { 'METHOD': 'oauth2', # 'SDK_URL': '//connect.facebook.net/{locale}/sdk.js', 'SCOPE': ['email', 'public_profile'], 'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'INIT_PARAMS': {'cookie': True}, 'FIELDS': [ 'id', 'email', 'first_name', 'last_name', 'middle_name', 'name', 'name_format', 'picture', 'short_name' ], 'EXCHANGE_TOKEN': True, 'LOCALE_FUNC': 'path.to.callable', 'VERIFIED_EMAIL': False, 'VERSION': 'v13.0', 'GRAPH_API_URL': 'https://graph.facebook.com/v13.0', } } ACCOUNT_DEFAULT_HTTP_PROTOCOL="https" ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_AUTHENTICATION_METHOD = 'email'强制HTTPS环境
Facebook OAuth2要求必须在HTTPS环境下运行,本地开发可使用ngrok等工具生成HTTPS代理地址;生产环境需确保服务器配置了有效的SSL证书,且所有回调地址均为HTTPS格式。检查Facebook开发者后台设置
- 确认应用状态为「Live」(开发模式仅允许添加的测试用户登录)
- 验证
Valid OAuth Redirect URIs配置的地址与应用内回调地址完全一致,且为HTTPS格式 - 检查
App Domains、Privacy Policy URL等必填项是否已正确填写 - 核对
Client ID和Client Secret是否与后台完全匹配,无拼写错误或空格
API版本与权限验证
- 尝试将Facebook API版本升级至较新的稳定版本(如v18.0),避免旧版本API的兼容性问题
- 确认
SCOPE中申请的权限已在后台通过审核(开发模式下测试用户无需审核)
内容的提问来源于stack exchange,提问作者Victor Calimano
相关产品推荐
相关产品推荐

