本地环境集成Facebook登录报错:域名未纳入应用域名如何解决?
别着急,我帮你一步步排查这个问题——这个报错大多是配置细节没匹配到位,咱们逐个核对:
检查Redirect URI的协议是否匹配
你配置的是https://localhost/...,但本地开发环境默认是HTTP(除非你手动配置了SSL证书)。Facebook的OAuth对协议严格校验,如果本地没开HTTPS,把Redirect URI改成http://localhost/mysocial/socialmedia/login/Facebook试试,同时注意App Domains里的localhost不需要加任何协议前缀。核对App Domains的格式
确保App Domains里只填纯域名,比如localhost、localhost.com,不要加斜杠、协议(http/https)或者路径。另外检查有没有不小心加了空格,多余的空格会导致域名识别失败。确认Redirect URI完全一致
复制你项目里实际跳转的Redirect URI,和Facebook后台Valid OAuth Redirect URIs里的内容完全粘贴匹配,包括末尾有没有斜杠、大小写(虽然Facebook不严格区分大小写,但完全一致更稳妥)。清除浏览器缓存和Cookie
有时候浏览器会缓存旧的应用配置信息,导致新添加的域名不生效。清一下当前浏览器的缓存和Cookie,然后重新测试登录。检查应用模式和测试用户
如果你的Facebook应用还处于开发模式,要确保你用来测试的账号已经添加到应用的"测试用户"列表里(在应用后台的"角色"选项卡下),否则非测试用户会被拦截。确认应用平台配置
进入Facebook应用后台的"产品" -> "Facebook登录" -> "设置",确保你选择的平台是"网站",并且网站URL填写的是http://localhost/mysocial(或者你项目的根路径),这个要和App Domains、Redirect URI对应上。
按照上面的步骤逐一排查,应该就能解决这个域名不匹配的问题了。
内容的提问来源于stack exchange,提问作者soni soniya

