我试图测试OAuth按钮,但它们都(Facebook, Twitter, LinkedIn)返回错误,似乎表明我不能从本地URL测试或使用它们。
如果开发人员都需要非开发和非本地连接环境,那么他们通常如何使用OAuth的东西进行开发呢?
我试图测试OAuth按钮,但它们都(Facebook, Twitter, LinkedIn)返回错误,似乎表明我不能从本地URL测试或使用它们。
如果开发人员都需要非开发和非本地连接环境,那么他们通常如何使用OAuth的东西进行开发呢?
当前回答
2016年10月更新:现在最简单:使用lvh。我总是指向127.0.0.1,但确保验证这仍然是真的,每次你需要调用它(因为域可以过期或被接管,DNS中毒总是一个问题)
之前的回答:
由于回调请求是由浏览器发出的,作为HTTP重定向响应,您可以设置.hosts文件或等效文件,将非localhost的域指向127.0.0.1。
例如,您向Twitter注册了以下回调:http://www.publicdomain.com/callback/。确保www.publicdomain.com在您的hosts文件中指向127.0.0.1,并且twitter可以成功地对www.publicdomain.com进行DNS查找,即域需要存在,并且特定的回调应该在请求时返回200状态消息。
编辑:
我刚刚读了下面的文章:http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local-machine,这是从这个问题链接到:Twitter oAuth callbackUrl - localhost development。
引用这篇文章:
你可以用bit。ly,一个URL缩短服务。只需要缩短[localhost URL,如http//localhost:8080/twitter_callback],并在你的Twitter应用程序中注册缩短的URL作为回调。
这应该比在.hosts文件中折腾要简单。
注意现在(2014年8月)位。Ly不允许链接转发到本地主机;但是谷歌链接缩短工作。
PS编辑:(11月18日):谷歌链接缩短器停止支持localhost或127.0.0.1。
其他回答
你也可以使用ngrok: https://ngrok.com/。我一直使用它在我的本地主机上运行一个公共服务器。希望这能有所帮助。
另一个甚至免费提供你自己的自定义域名的选项是serveo.net和https://localtunnel.github.io/www/
将本地域设置为mywebsite.example.com(并将其重定向到localhost)—尽管通常使用的是mywebsite.dev。这将允许健壮的自动测试。
虽然不允许授权.test和.dev,但在谷歌oauth2中允许授权example.com。
(你可以在你的hosts文件(unix/linux: /etc/hosts)中将任何域重定向到localhost)
为什么mywebsite.example.com ? 因为example.com是保留域名。所以
在您的机器上不会有命名冲突。 如果您的测试系统公开数据,则没有数据风险 到not-redirected-by-mistake.example.com。
谷歌不允许测试认证api在本地主机使用http://webporject.dev或。loc和。etc和谷歌短链接缩短您的本地url(http://webporject.dev)也位。ly:)。谷歌只接受以http://localhost/开头的url…
如果你想测试谷歌认证API,你应该遵循这些步骤…
如果你使用openserver,进入设置面板,单击别名选项卡,单击下拉菜单,然后找到localhost并选择它。
现在你应该通过点击第一个下拉菜单旁边的下一个下拉菜单来选择你的本地web项目根文件夹。
点击一个叫做add的按钮并重新启动opensever。
现在您的本地项目可在此链接http://localhost/ 你也可以粘贴这个本地url到谷歌认证API重定向url字段…
Mac用户:编辑/etc/hosts文件。如果它是只读的,你必须使用sudo vi /etc/hosts。授权后,oauth服务器发送回调URL,由于该回调URL是在您的本地浏览器上呈现的,因此本地DNS设置将工作:
127.0.0.1 mylocal.com
或者您可以使用https://tolocalhost.com/并配置它如何将回调重定向到您的本地站点。您可以指定主机名(如果不同于localhost,即yourapp)。本地和端口号)。仅供开发用途。