Facebook OAuth redirect_uri 问题“应用程序配置不允许给定 URL。”

Posted

技术标签:

【中文标题】Facebook OAuth redirect_uri 问题“应用程序配置不允许给定 URL。”【英文标题】:Facebook OAuth redirect_uri problem 'Given URL is not permitted by the application configuration.' 【发布时间】:2011-04-12 02:04:32 【问题描述】:

通过重定向到以下网址请求授权时:

https://graph.facebook.com/oauth/authorize?client_id=...&scope=email,offline_access&redirect_uri=http%3A%2F%2Flocalhost%2Flogin%2Findex.php%3Fcallback%3Dfacebook

Facebook 返回“应用程序配置不允许给定 URL 无效的 redirect_uri。”

可能是因为我的应用程序在应用程序配置上注册了http://syncacity.com。但是,twitter 仍然允许我重定向到任何 url,那么为什么 facebook 抱怨呢?

感谢您的想法:)

【问题讨论】:

【参考方案1】:

为什么不直接编辑您的主机文件并将您的域指向您的本地 IP,那么您只需要在执行任何操作之前切换开发盒主机。

【讨论】:

几年前我问过这个问题,只是想我会回来告诉你们,这就是我从那以后一直在做的事情。我将实时生产域添加到我的主机文件中,然后将其切换回来。它还有助于在 Facebook 选项卡中进行测试。请记住在测试部署时将其改回 :)【参考方案2】:

在您开发时将您的应用程序网址更改为http://localhost,然后在您的网站投入生产后更改为您的网站。 :)

【讨论】:

这是一个糟糕的解决方案。 Facebook 将重定向 URL 限制为您的 fbApp 中的设置。这使得使用实时网站进行开发变得非常困难。为什么他们的“站点”不是经过批准的服务器列表,因此您可以逐台添加机器进行测试?内部 IP + 外部网站。 @Kievli :一种解决方案是为每个环境创建一个应用程序并将密钥保存在配置文件中。这是我发现使用 FB 登录最简单的方法。 使用 localhost 对我不起作用。我什至将所有 IP 地址都添加到了白名单中,但它仍然不允许我使用解析为 redirect_uri 中的私有 IP 的东西。【参考方案3】:

它得到了解决 - 感谢 Facebook 平台开发人员之一。

假设您的本地站点 URL 是 http://localhost:8000 您需要在“设置 -> 基本 -> 网站 -> 站点 URL” 中将 http://localhost:8000 添加到 Facebook 应用设置。

【讨论】:

【参考方案4】:

以下对我有用:

App Domains: localhost
Site URL: http://localhost

【讨论】:

【参考方案5】:

我在沙盒模式下创建了一个测试应用(高级设置) 然后集成到开发和测试中

【讨论】:

【参考方案6】:

您已经在redirect_url 中定义了localhost url (redirect_uri=http://localhost/login/index.php ..) 我不熟悉 OAuth,但这可能是问题所在。

【讨论】:

以上是关于Facebook OAuth redirect_uri 问题“应用程序配置不允许给定 URL。”的主要内容,如果未能解决你的问题,请参考以下文章

Oauth - Facebook/Twitter/Foursquare

像 Facebook 一样的 OAuth 身份验证

Facebook Oauth2.0 API调用方法

oauth 与 facebook

Facebook 共享对话框:权限错误 - OAuth“Facebook 平台”“insufficient_scope (#200) 权限错误”

OAuth2“社交登录”流程(允许通过 Facebook/Twitter 进行 OAuth2 身份验证):是不是有任何示例/文献?