使用social django package实现Facebook登录时遇URL域名错误
解决Facebook登录时的"Domain isn't included in app's domains"错误
这个错误是Facebook用来确保只有授权域名能和你的应用交互,核心原因是你的Facebook应用配置里App Domains未包含localhost,或者OAuth重定向URI设置不完整。下面是一步步的修复方案:
- 首先登录Facebook开发者平台,找到你的目标应用
- 进入应用的Settings > Basic页面:
- 在App Domains输入框中添加
localhost(不需要带http://、https://或者端口号) - 滚动到Website板块,确认Site URL设置为
https://localhost:8000(和你当前的本地服务地址一致)
- 在App Domains输入框中添加
- 接下来进入Products > Facebook Login > Settings页面:
- 在Valid OAuth Redirect URIs字段中,除了已有的
https://localhost:8000,一定要加上social-django处理Facebook登录回调的完整路径:https://localhost:8000/complete/facebook/ - (如果你的项目里回调路径有自定义修改,要换成你实际的路径)
- 在Valid OAuth Redirect URIs字段中,除了已有的
- 点击页面底部的Save Changes,等待1-2分钟让配置生效,然后重新测试登录
另外,别忘了检查Django项目里的settings.py配置:确保SOCIAL_AUTH_FACEBOOK_REDIRECT_URI的值和你在Facebook后台设置的回调URI完全一致,比如:
SOCIAL_AUTH_FACEBOOK_REDIRECT_URI = 'https://localhost:8000/complete/facebook/'
本地开发时如果遇到浏览器证书提示问题,可以暂时改用http://localhost:8000,同时在Facebook后台的对应设置里更新为http地址——现在大部分现代浏览器对localhost的https请求也会放行,根据你的实际情况调整即可。
内容的提问来源于stack exchange,提问作者Anjitha
相关产品推荐
相关产品推荐

