Facebook登录报错:URL域名未纳入应用域名,Strict Mode无法禁用
解决Facebook登录「域名未包含在应用域名中」的问题(Strict Mode强制启用后)
Facebook最近的更新已经强制开启了「Use Strict Mode for Redirect URIs」,再也没法通过禁用这个选项来绕开域名校验了,这也是导致你网站Facebook登录失效的核心原因。下面给你一套亲测有效的修复步骤:
1. 正确配置App Domains字段
进入Facebook开发者后台,找到你的应用 → 产品 → Facebook登录 → 设置:
- 在
App domains里添加你的网站主域名以及所有用到的子域名,比如yourdomain.com、m.yourdomain.com,注意不要加http://或https://前缀。
2. 精确设置Valid OAuth Redirect URIs
同样在Facebook登录设置页面:
- 找到
Valid OAuth Redirect URIs,这里要填写完整且精确的回调URL,每个URL单独一行。比如:https://yourdomain.com/auth/facebook/callbackhttps://m.yourdomain.com/login/facebook/callback
注意:这里不能用通配符(比如
https://*.yourdomain.com/*),必须写具体的完整地址,否则Strict Mode会直接拦截请求。
3. 确认Site URL配置(网站应用必填)
回到应用的「基本设置」页面:
- 检查
Site URL是否填写了你的网站根地址,比如https://yourdomain.com,这个字段会辅助Facebook验证你的域名归属。
4. 本地开发环境的特殊处理
如果是在本地用localhost测试:
- 把
localhost添加到App domains里; - 把
Valid OAuth Redirect URIs设为你的本地回调地址,比如http://localhost:8080/auth/facebook/callback(替换8080为你的本地服务端口),Facebook允许localhost作为开发域名使用。
常见避坑提醒
- 别漏了子域名:所有涉及Facebook登录的域名/子域名,都必须加到
App domains里; - 生产环境必须用HTTPS:Facebook现在对非HTTPS的生产域名校验非常严格,一定要部署HTTPS;
- 配置后清缓存:修改完设置后,建议清一下浏览器缓存或者重启服务,确保配置生效。
如果按上面的步骤操作后还是有问题,可以试试在开发者后台重新生成应用的密钥,再测试登录流程。
内容的提问来源于stack exchange,提问作者Remya krishnan
相关产品推荐
相关产品推荐

