当我的本地域未在 Yahoo 注册时,我如何在本地开发时让 Yahoo OAuth 工作?

Posted

技术标签:

【中文标题】当我的本地域未在 Yahoo 注册时,我如何在本地开发时让 Yahoo OAuth 工作?【英文标题】:How can I get Yahoo OAuth to work when I develop locally when my local domain is not registered with Yahoo? 【发布时间】:2011-04-07 02:19:29 【问题描述】:

我正在开发一个使用 Yahoo OAuth 的应用程序。 OAuth 一直运行良好,但我刚刚在 Yahoo 注册了我的域,现在它不允许我在本地开发时使用 OAuth,因为 “不允许自定义端口或主机未使用此使用者密钥注册。”

问题是因为我的回调 URL 是未在 Yahoo (http://localhost:8080/welcome) 注册的域。

我不知道该怎么办。我也是开发新手,所以如果你能具体提出一些很棒的建议!非常感谢任何帮助。

【问题讨论】:

我也有同样的问题,你有没有想出解决办法? Netflix 和 Google 的 OAuth 与 localhost:8080 作为回调主机正常工作。 【参考方案1】:

It looks like Yahoo! doesn't want you to do this. 类似问题的一些答案可能会有所帮助(或没有帮助):

How do I develop against OAuth locally? 401 Unauthorized using Yahoo OAuth Yahoo OAuth question

编辑:更多证据 Yahoo!不支持这个:http://developer.yahoo.net/forum/?showtopic=6496&cookiecheckonly=1

【讨论】:

【参考方案2】:

Hiii... yahoo 在 localhost 上工作 :).. 您需要做的是在注册 yahoo 消费者密钥和密钥时,注册页面会询问您的应用程序类型。我想它为您提供了两种选择,网站和作为独立应用程序的 oder。根据您的情况选择独立应用程序。然后它会给你一对钥匙,它会在本地主机上工作:)。尽情享受吧!

【讨论】:

感谢您的提示!完全有效!如果我们无法在部署之前进行测试,不确定我们会怎么做……尤其是考虑到他们文档的出色状态:P 谢谢! 很高兴看到有帮助的答案的评论!干杯! 酷。如果您觉得这很有用,请接受此答案。 当我在 YDN 中创建应用程序作为已安装应用程序然后在请求身份验证时提供 callback_uri 时不起作用。它显示uh oh seems like something went wrong 屏幕。有什么想法可能出了什么问题?【参考方案3】:

我发现最简单的解决方案就是为我的开发环境注册一个单独的密钥。只要您不验证该密钥的域,就不会遇到任何问题。

【讨论】:

【参考方案4】:

在Vignes's answer 中处理Muhammad's 评论,因为我无法发表评论。如果您将 127.0.0.1 指定为回调域,您应该能够将回调与独立应用程序一起使用。您可能还需要更改本地服务器正在侦听的端口,因为您不能请求雅虎使用例如端口 8000。确保您的本地服务器正在侦听端口 80。

【讨论】:

【参考方案5】:

经过多次尝试,我也得出结论,雅虎的 redirect_uri 似乎不适用于 80 以外的端口。

对我有用的一种解决方案:

    下载ngrok 运行应用程序并在控制台中输入 ngrok http xxxx - 其中 xxxx 是您尝试访问的端口 该命令将生成一个http://xxxxxx.ngrok.io 转发链接,可用于Yahoo 的需求 在https://developer.yahoo.com/apps/create/ 创建一个新的Installed Application,并在Callback Domain 字段中输入http://xxxxxx.ngrok.io。 链接现在应该可以使用这个 redirect_uri

【讨论】:

【参考方案6】:

在撰写本文时,将 Application Type 设置为 Installed Application,然后将 Callback Domain 留空会出现错误。

有效的方法是将 127.0.0.1 配置为应用的 回调域。无论您选择Web 应用程序 还是已安装的应用程序 作为应用程序类型,这都有效。然而,雅虎!不接受带有端口的回调 URL,因此您必须确保您的应用在本地运行时侦听端口 80(如果是 https,则为 443)。

另一个不太理想的选择是使用一些不存在的随机域,例如 local.dev.env.com 作为 回调域,然后添加以下 editing your hosts file:

127.0.0.1 local.dev.env.com

这会将local.dev.env.com 上的所有请求转发到127.0.0.1

【讨论】:

以上是关于当我的本地域未在 Yahoo 注册时,我如何在本地开发时让 Yahoo OAuth 工作?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 [重复]

应用未在 iO 中运行时的本地区域识别

JavaScript 未在 XAMPP 本地主机上加载

错误:“Microsoft.Jet.Oledb.4.0”提供程序未在本地计算机上注册

Microsoft ACE OLEDB 12.0 未在本地计算机上注册 - 但它是

OraOLEDB.Oracle 提供程序未在本地计算机上注册 [关闭]