Django项目集成Facebook登录遇认证错误,寻求解决方法
解决Django Facebook登录的重定向URI及域名问题
以下是针对你遇到的两个错误的具体修复步骤:
1. 统一域名与协议,避免混用
你当前的配置混用了127.0.0.1和localhost,且使用了HTTPS(本地Django默认启动的是HTTP服务),这会导致域名匹配失败。请统一为以下任意一种组合:
- 方案一:使用
localhost- App Domains:
localhost - Site URL:
http://localhost:8000/
- App Domains:
- 方案二:使用
127.0.0.1- App Domains:
127.0.0.1 - Site URL:
http://127.0.0.1:8000/
- App Domains:
注意:本地开发无需强制使用HTTPS,除非你手动配置了SSL证书,否则保持默认HTTP即可。
2. 修正OAuth重定向URI为完整回调路径
你当前填写的https://127.0.0.1:8000/是网站根路径,并非Django处理Facebook登录回调的地址。如果使用的是django-allauth(多数教程默认使用的库),正确的回调路径应该是:
- 若用localhost:
http://localhost:8000/accounts/facebook/login/callback/ - 若用127.0.0.1:
http://127.0.0.1:8000/accounts/facebook/login/callback/
请将这个完整路径添加到有效OAuth重定向URI列表中,确保和Django项目中配置的回调地址完全一致(可检查settings.py中SOCIALACCOUNT_CALLBACK_URL或allauth的默认路由)。
3. 确认OAuth登录功能已启用
在Facebook开发者平台的应用设置中,进入产品 > Facebook登录 > 设置页面:
- 确保“客户端OAuth登录”和“网页OAuth登录”选项均已勾选启用
- 确认“强制HTTPS”选项在本地开发时处于关闭状态(除非你配置了SSL)
4. 清理缓存并重新测试
修改配置后,点击Facebook开发者平台的“保存更改”按钮,然后:
- 关闭当前浏览器的所有标签页,清除浏览器缓存和Cookie
- 重启Django开发服务器,重新发起Facebook登录请求
内容的提问来源于stack exchange,提问作者yin teh
相关产品推荐
相关产品推荐

