我相信这是不可能的,但是我认识的人坚持认为它可行。我什至不知道尝试使用哪些参数,而且我也没有在任何地方找到此文档。
我尝试了http://myserver.com/~user=username&password=mypassword,但是它不起作用。
您能确认实际上不可能通过HTTP参数(GET或POST)传递用户/传递吗?
我相信这是不可能的,但是我认识的人坚持认为它可行。我什至不知道尝试使用哪些参数,而且我也没有在任何地方找到此文档。
我尝试了http://myserver.com/~user=username&password=mypassword,但是它不起作用。
您能确认实际上不可能通过HTTP参数(GET或POST)传递用户/传递吗?
Answers:
确实不可能通过标准HTTP身份验证中的查询参数传递用户名和密码。而是使用一种特殊的URL格式,如下所示:http://username:password@example.com/
-这将在标准HTTP“授权”标头中发送凭据。
与您交谈的人可能正在考虑定制模块或代码,这些模块或代码可以查看查询参数并验证凭据。这不是标准的HTTP身份验证,而是特定于应用程序的事情。
不建议在URL中传递基本身份验证参数
为此有一个Authorization标头字段,请在此处检查: http标头列表
如何使用它写在这里: 基本访问身份验证
在这里您还可以阅读到,尽管某些浏览器仍支持它,但不建议在URL中添加基本授权凭证的建议解决方案。
另请阅读RFC 2617-HTTP身份验证中的第4.1章,以获取有关为什么不使用基本身份验证的更多详细信息。
在查询字符串中传递身份验证参数
使用OAuth或其他身份验证服务时,通常还可以通过查询字符串而不是授权标头发送访问令牌,如下所示:
GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD
http:// username:password@example.com适用于FireFox,Chrome,Safari BUT,不适用于IE。
@
将密码转义为%40
。(不过,我不知道这种方法是否可行,并且可能取决于服务器或浏览器/服务器的组合。)