当我在本地开发时,我的本地域名未在Yahoo注册,如何使Yahoo OAuth在本地环境中工作?

17

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

这个问题是因为我的回调URL指向一个未在 Yahoo 中注册的域名 (http://localhost:8080/welcome)。

我不确定该怎么做。我也是一个新手,如果你能提出具体的建议,那就太好了!非常感谢任何帮助。


我有同样的问题,你有找到解决方案吗?Netflix和Google的OAuth在localhost:8080作为回调主机时运行良好。 - Chad
6个回答

27

嗨...yahoo可以在本地主机上工作 :)..您需要做的是,在注册yahoo用户密钥和秘密密钥时,注册页面会问您的应用程序类型。我想它会给你两个选项,网站和独立应用程序。在您的情况下选择独立应用程序。然后它会为您提供一对密钥,并且可以在本地主机上工作 :).享受吧!


谢谢你的提示!完全有效!如果我们无法在部署之前进行测试,不确定我们会做什么...特别是考虑到他们文档的精彩状态:P 谢谢! - Joel
看到一个对有帮助的回答的评论感觉很棒!干杯! - Vignesh Iyer
很好。如果您觉得这个答案有用,请接受它。 - Vignesh Iyer
3
当我在YDN中创建一个已安装应用程序并在请求授权时提供回调URI时,它无法工作,会显示“噢哦,似乎出了些问题”的屏幕。有什么思路可能是错的吗? - Muhammad Adeel Zahid


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

3
经过多次尝试,我也得出这样的结论:Yahoo的 redirect_uri 似乎不能使用除80端口以外的其它端口。
以下是适用于我的解决方案:
  1. 下载ngrok应用程序
  2. 在控制台中输入ngrok http xxxx——其中xxxx是您要访问的端口号
  3. 该命令将生成一个http://xxxxxx.ngrok.io转发链接,可供Yahoo使用
  4. https://developer.yahoo.com/apps/create/上创建一个新的 已安装应用程序,并在回调域字段中输入http://xxxxxx.ngrok.io
  5. 现在应该可以使用此redirect_uri链接了

1

由于我无法评论,所以在Vignes的 答案中回应穆罕默德的评论。如果您将127.0.0.1指定为回调域,您应该能够在独立应用程序中使用回调。您可能还需要更改本地服务器正在侦听的端口,因为您不能请求Yahoo使用例如端口8000。确保您的本地服务器正在侦听端口80。


0

目前为止,将应用程序类型设置为已安装的应用程序,然后将回调域留空会导致错误。

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

另一个不太理想的选择是使用一些不存在的随机域,例如local.dev.env.com作为回调域,然后编辑您的hosts文件,添加以下内容:

127.0.0.1 local.dev.env.com

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接