OAuth:如何使用本地URL进行测试?
我试图测试按钮,但它们(Facebook、Twitter、LinkedIn)都出现了错误,似乎表明我无法从本地URL测试或使用它们OAuth:如何使用本地URL进行测试?,oauth,localhost,Oauth,Localhost,我试图测试按钮,但它们(Facebook、Twitter、LinkedIn)都出现了错误,似乎表明我无法从本地URL测试或使用它们 如果人们似乎都需要一个非开发和非本地连接环境,那么他们通常如何使用OAuth工具进行开发呢?2016年10月更新:现在最简单:使用它总是指向127.0.0.1 先前的答案: 由于回调请求是由浏览器发出的,因此作为HTTP重定向响应,您可以将.hosts文件或等效文件设置为指向一个不是localhost的域,使其指向127.0.0.1 例如,假设您在Twitter上注
如果人们似乎都需要一个非开发和非本地连接环境,那么他们通常如何使用OAuth工具进行开发呢?2016年10月更新:现在最简单:使用它总是指向
127.0.0.1
先前的答案:
由于回调请求是由浏览器发出的,因此作为HTTP重定向响应,您可以将.hosts文件或等效文件设置为指向一个不是localhost
的域,使其指向127.0.0.1
例如,假设您在Twitter上注册了以下回调:http://www.publicdomain.com/callback/
。确保www.publicdomain.com
指向主机文件中的127.0.0.1,并且twitter可以在上进行成功的DNS查找,即域需要存在,如果请求,特定回调可能会返回200状态消息
编辑:
我刚刚读了以下文章:,这是从这个问题链接到的:
引用这篇文章:
您可以使用bit.ly,一种URL缩短服务。只需缩短[localhost URL,如http//localhost:8080/twitter\u callback],并将缩短后的URL注册为twitter应用程序中的回调
这应该比在.hosts文件中乱翻容易
请注意,现在(2014年8月)bit.ly不允许链接转发到本地主机;然而,谷歌链接缩短器工作
PS edit:(11月18日):Google link shortener停止支持localhost或127.0.0.1。或者您可以使用和配置它如何将回调重定向到本地站点。您可以指定主机名(如果与localhost不同,即yourapp.local和端口号)仅用于开发目的。谷歌不允许使用
http://webporject.dev
或.loc
和.etc以及缩短本地url(http://webporject.dev
)也是bit.ly
:)。谷歌只接受以http://localhost/
如果你想测试GoogleAuthAPI,你应该遵循以下步骤
如果您使用openserver
进入设置面板,单击别名选项卡
并单击下拉列表,然后找到localhost
并选择它
现在,您应该通过单击第一个下拉列表旁边的下一个下拉列表来选择本地web项目根文件夹
然后单击名为add
的按钮,重新启动opensever
现在您的本地项目可在此链接http://localhost/
您还可以将此本地url粘贴到google auth api以重定向url
字段…您还可以使用ngrok:。我一直使用它在本地主机上运行公共服务器。希望这有帮助
另一个甚至免费提供您自己的自定义域的选项是serveo.net,您可以在windows或linux上编辑主机文件 Windows:C:\Windows\System32\Drivers\etc\hosts Linux:/etc/hosts 本地主机名解析在DNS本身内处理。 127.0.0.1 mywebsite.com 完成测试后,只需注释添加的行即可禁用它 127.0.0.1 mywebsite.com
对于Mac用户,编辑
/etc/hosts
文件。如果是只读的,则必须使用sudo vi/etc/hosts
。授权后,oauth服务器发送回调URL,由于该回调URL在本地浏览器上呈现,因此本地DNS设置将起作用:
127.0.0.1 mylocal.com
以googleoauth为参考
- 在您的OAuth客户端中
- 添加你的应用URI示例
到授权的JavaScript源代码URI(http://localhost:3000)
- 在您的OAuth同意屏幕中
mywebsite.com
添加到授权域windows C:\windows\System32\Drivers\etc\hosts
linux:/etc/hosts
以添加127.0.0.1 mywebsite.com
(注意:如果有任何其他127.0.0.1,请将其注释掉)127.0.0.1:8000
您可以转到http://www.127.0.0.1.xip.io:5555/
以访问此服务器。
然后,您可以将此地址添加到Facebook或Google的Oauth配置中。另一个有价值的选项是。这是一个非常简单的html页面,可以重定向到您在UI中配置的任何主机和端口
该页面位于Github上,因此您可以将其用作OAuth2重定向url,并在UI中配置您的目标主机和端口,它只会重定向到您的应用程序将您的本地域设置为
mywebsite.example.com
(并将其重定向到localhost)--即使通常使用的是mywebsite.dev
。这将允许稳健的自动测试
虽然不允许授权.test
和.dev
,但在google oauth2中允许授权example.com
(您可以将任何域重定向到主机文件(unix/linux:/etc/hosts
)中的本地主机)
为什么mywebsite.example.com
?因为
example.com
是保留域名。所以
。example.com
我在其他答案中提到的工具中遇到了一些问题,例如不转发查询参数(更不用说您必须先访问页面并对其进行配置,情况与相同)和