来自 cUrl 文档:
-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参数中?
语言不重要,思想很重要。
来自 cUrl 文档:
-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参数中?
语言不重要,思想很重要。
这完全取决于身份验证方法,但对于最常见的几种——基本认证和数字摘要认证,它可以使用临时HTTP头来工作。以下是使用基本认证的示例:
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解码并使用的身份验证数据。相同的头将在POST请求中设置。您可以使用像httpbin(1)这样的服务轻松测试它(请参见/basic-auth/:user/:passwd
端点)。
摘要认证有点更加复杂,但也可使用HTTP头来工作:
401 Unauthorized
,其中包括一个WWW-Authenticate
头,还有一个待解决的挑战,Authorization
头中,必须在服务器端进行解析和验证。[1]: base64("john:pwd")
-> am9objpwd2Q=
有一种更简单的方法。用这种方式来做。
$_SERVER['HTTP_AUTHORIZATION']
请求:
curl http://127.0.0.1:8080/test.php -u arun:12345
$_SERVER['HTTP_AUTHORIZATION']中的值:
Basic YXJ1bjoxMjM0NQ==