来自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参数?
语言并不重要,这个想法很重要。
答案 0 :(得分:42)
这一切都取决于authentication method,但对于最常见的 - Basic Auth和Digest 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