Facebook登录报错:重定向URI未在OAuth设置中白名单化
解决Facebook登录重定向URI未白名单问题
排查点1:确保重定向URI完全匹配
- 代码中使用的重定向URI必须和Facebook后台设置的完全一致:
- 协议(http/https)要严格对应,不能后台用https而代码里用http
- 结尾的斜杠要统一,比如后台是
https://smarteresto.com/facebookpost/callback,代码里不能多写尾斜杠变成https://smarteresto.com/facebookpost/callback/ - 大小写保持一致,Facebook的匹配规则是严格区分的
排查点2:检查OAuth核心开关位置
- 进入Facebook开发者后台「产品」→「Facebook登录」→「设置」页面:
- 确认Client OAuth Login和Web OAuth Login都处于开启状态
- 「Valid OAuth Redirect URIs」需要在这个页面配置,而非高级选项卡(你提到的高级选项卡设置可能不是正确位置)
排查点3:代码显式指定重定向URI
- 初始化PHP SDK时,手动指定重定向URI,避免SDK自动生成的地址和设置不匹配:
$fb = new Facebook\Facebook([ 'app_id' => '你的APP_ID', 'app_secret' => '你的APP_SECRET', 'default_graph_version' => 'v18.0', ]); $helper = $fb->getRedirectLoginHelper(); // 显式定义和后台一致的重定向地址 $redirectUrl = 'https://smarteresto.com/facebookpost/callback'; $loginUrl = $helper->getLoginUrl($redirectUrl, ['email', 'public_profile']);
排查点4:完善应用基础设置
- 进入应用「设置」→「基本」页面:
- 「应用域名」填写
smarteresto.com - 「网站URL」设置为
https://smarteresto.com/(或对应业务路径)
- 「应用域名」填写
排查点5:等待缓存生效并测试
- 修改后台设置后,等待5-10分钟让Facebook配置缓存更新
- 用浏览器无痕模式清除缓存后,重新测试登录流程
内容的提问来源于stack exchange,提问作者kirti
相关产品推荐
相关产品推荐

