cUrls的选项“-u”

时间:2013-12-23 04:34:40

标签: authentication curl

来自cUrl docs:

-u, --user <user:password;options>

Specify the user name, password and optional login options to use for server authentication. Overrides -n, --netrc and --netrc-optional.

它被翻译成什么,这意味着如何在服务器上捕获它以验证用户:他们是GET还是POST参数?

语言并不重要,这个想法很重要。

3 个答案:

答案 0 :(得分:42)

这一切都取决于authentication method,但对于最常见的 - Basic AuthDigest Auth,这适用于ad hoc HTTP标头。这是Basic Auth的一个例子:

curl -u john:pwd http://foo.com/misc

这将执行带有相应标头的GET请求:

GET /misc HTTP/1.1
Authorization: Basic am9objpwd2Q=
User-Agent: curl/7.33.0
Host: foo.com
Accept: */*

Authorization标头包含服务器应该解析的身份验证数据,base64 decode [1]并使用。将使用POST请求设置相同的标头。您可以使用httpbin(1)等服务轻松测试它(请参阅/basic-auth/:user/:passwd端点)。

摘要身份验证有点复杂,但也适用于HTTP标头:

  • 客户端首先发送请求,服务器回复401 Unauthorized,其中包含WWW-Authenticate标题以及要解决的挑战,
  • 客户端解决了这一挑战,并将包含响应的另一个请求发送到Authorization标头中,该标头必须在服务器端进行解析和验证。

[1]:base64("john:pwd") - &gt; am9objpwd2Q=

答案 1 :(得分:5)

有一种更简单的方法。这样做吧

curl&#34; http://user:pass@www.example.com&#34;

答案 2 :(得分:0)

在PHP / nginx中,它在此数组元素中可用作base64编码的字符串。它适用于GET和POST(curl -X POST)方法。

show

请求:

hide
$ _SERVER ['HTTP_AUTHORIZATION']中的

值:

nodeType