Curl 通过url进行基本身份验证

Curl 通过url进行基本身份验证,curl,browser,basic-authentication,Curl,Browser,Basic Authentication,我正在学习如何编写RESTAPI,我可以从命令行开始使用它,并通过下面的代码行获得预期的响应 curl -v -u username:pass -X GET http://api.mysite.com/user/1 但是当我试图通过浏览器访问它时,api没有收到基本身份验证的用户名和密码。这对我不起作用 http://username:pass@api.mysite.com/user/1 我知道我的api没有获取用户名和密码,因为我检查了$\u服务器['PHP\u AUTH\u USER']

我正在学习如何编写RESTAPI,我可以从命令行开始使用它,并通过下面的代码行获得预期的响应

curl -v -u username:pass -X GET http://api.mysite.com/user/1
但是当我试图通过浏览器访问它时,api没有收到基本身份验证的用户名和密码。这对我不起作用

http://username:pass@api.mysite.com/user/1
我知道我的api没有获取用户名和密码,因为我检查了$\u服务器['PHP\u AUTH\u USER'],它是空的


为什么我要通过curl而不是通过浏览器接收凭据?

你不应该在URL中传递凭据,出于安全原因,这种方法在许多现代浏览器中被弃用,它也从来不是官方的。如果您正在寻找一种更方便的方法来开发/测试/使用API,我建议您为Chrome安装此扩展:


然后只需正确设置
Authorization
HTTP头即可。Wikipedia是您的朋友,它可以回答如何做到这一点:

帮助这种传递凭据的方式从来都不是HTTP URL的“官方”方式,虽然以前浏览器支持它,但出于安全考虑,几年前就已经改变了。今天,一些浏览器只有在询问用户是否想要发送这些凭证后才允许,而其他浏览器只有在其配置中明确设置凭证时才允许。(IE的IIRC甚至需要一个注册表项。)你知道如何使用Chrome吗?