你可以通过URL参数的HTTP基本authentication的用户/通行证吗?

我相信这是不可能的,但是我认识的人坚持认为它是有效的。 我甚至不知道要尝试什么参数,而且我还没有发现任何地方的logging。

我尝试http://myserver.com/~user=username&password=mypassword,但它不起作用。

你能确认实际上不可能通过HTTP参数(GET或POST)传递用户/传递吗?

在标准的HTTPauthentication中通过查询parameter passing用户名和密码确实是不可能的。 而是使用特殊的URL格式,例如: http://username:[email protected]/ – 这将在标准HTTP“授权”标头中发送凭据。

有可能你正在说话的人正在考虑查看查询参数并validation凭证的自定义模块或代码。 这不是标准的HTTPauthentication,但是,这是一个特定于应用程序的事情。

http:// username:[email protected]将适用于FireFox,Chrome,Safari,但不适用于IE。

Microsoft知识库

不build议在URL中传递基本身份validation参数

有一个授权标题字段为此在这里检查它: http标题列表

如何使用它写在这里: 基本访问validation

在那里你也可以看到,虽然它仍然受到一些浏览器的支持,但build议不要在URL中添加基本授权凭证。

请阅读RFC 2617中的4.1章节 – HTTPauthentication ,了解为什么不使用基本authentication的更多细节。


在查询string中传递validation参数

使用OAuth或其他身份validation服务时,您通常也可以将查询string中的访问令牌发送到查询string中,而不是授权标头中,如下所示:

 GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD 

尽pipe不build议发送login名和密码,因为它可以显示出来,尤其是如果它不在AJAX请求中,显然可以在GET参数中发送任何string。

然而,您需要编码服务器页面来提取login名和密码,然后以任何需要的方式进行validation和使用。