我正在尝试测试oauth按钮,但他们都(Facebook,Twitter,LinkedIn)回来时出现的错误似乎表明我无法测试或使用本地网址。
如果人们似乎都需要非开发和非本地连接环境,那么人们通常如何使用oauth工作进行开发?
2016年10月更新:现在最简单:使用始终指向lvh.me的127.0.0.1
。
上一个答案:
由于回调请求由浏览器发出,作为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],并将缩短的URL注册为Twitter应用程序中的回调。
这应该比在.hosts文件中摆弄更容易。
请注意,现在(2014年8月)bit.ly不允许链接转发到localhost;但谷歌链接缩短工作。
PS编辑:( 11月18日):谷歌链接缩短器停止支持localhost或127.0.0.1。
或者您可以使用https://tolocalhost.com/并配置它应如何将回调重定向到您的本地站点。您可以指定主机名(如果与localhost不同,即yourapp.local和端口号)。仅用于开发目的。
你也可以使用ngrok:https://ngrok.com/。我一直使用它来在我的localhost上运行公共服务器。希望这可以帮助。
Google不允许使用http://webporject.dev
或.loc
和.etc以及缩短本地网址(http://webporject.dev
)和bit.ly
:)的google短链接在localhost上测试auth api。 Google只接受启动http://localhost/
的网址...
如果您想测试google auth api,您应该按照以下步骤操作...
如果您使用openserver
转到设置面板并单击aliases tab
并单击下拉列表,然后找到localhost
并选择它。
现在,您应该通过单击第一个下拉列表旁边的下一个下拉列表来选择本地Web项目根文件夹。
然后单击名为add
的按钮并重新启动opensever。
现在你的本地项目可以在这个链接http://localhost/
上找到你也可以将这个本地网址粘贴到google auth api到redirect url
字段...
您可以在Windows或Linux上编辑hosts文件:C:\ Windows \ System32 \ Drivers \ etc \ hosts Linux:/ etc / hosts
localhost name resolution is handled within DNS itself.
127.0.0.1 没有website.com
完成测试后,您只需注释添加的行以禁用它
127.0.0.1 mywebsite.com