Authentication 卷发';s选项“-u";

Authentication 卷发';s选项“-u";,authentication,curl,Authentication,Curl,从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. -u,--user 指定用于服务器身份验证的用户名、密码和可选登录选项。重写-n、-netrc和--netrc可选。 它

从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.
-u,--user
指定用于服务器身份验证的用户名、密码和可选登录选项。重写-n、-netrc和--netrc可选。
它被翻译成什么,这意味着我如何在服务器上捕获它来验证用户:它们是在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解码[1]和使用的身份验证数据。POST请求将设置相同的头。您可以使用以下服务轻松测试它(请参见
/basic auth/:user/:passwd
endpoint)

摘要身份验证稍微复杂一些,但也适用于HTTP头:

  • 客户机首先发送其请求,服务器用
    401 Unauthorized
    回复,包括
    WWW-Authenticate
    标头,其中包含一个要解决的问题
  • 客户机解决了该问题,并发送另一个请求,其中响应包含在
    授权
    头中,该头必须在服务器端进行解析和验证

[1] :
base64(“john:pwd”)
->
am9objpwd2Q=

在PHP/nginx中,它在该数组元素中作为base64编码字符串提供。它同时适用于GET和POST(curl-xpost)方法

$_SERVER['HTTP_AUTHORIZATION']
请求:

curl http://127.0.0.1:8080/test.php  -u arun:12345
$\u服务器['HTTP\U授权']中的值:

Basic YXJ1bjoxMjM0NQ==

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


curl“”

为什么在curl的命令行中使用john:pwd 2次?因为这是一个工作原理:它是一个用于测试HTTP客户端等的简单服务。它提供端点来测试Basic和Digest auth,前提是您确定要使用的用户名和密码。但是您可以忘记这一部分,它是特定于此测试服务的。我已经更新了我的答案,以避免任何歧义。但我的第一个问题是如何获取用户并在服务器上传递。这再次取决于身份验证方案。使用Basic Auth,您必须解析授权头,base64解码编码部分并提取用户和密码。这里有一个例子。