curl的基本授权命令
如何使用64编码凭据设置基本授权? 我试过下面的两个命令,但没有用,请建议curl的基本授权命令,curl,authorization,Curl,Authorization,如何使用64编码凭据设置基本授权? 我试过下面的两个命令,但没有用,请建议 curl -i -H 'Accept:application/json' Authorization:Basic <username:password> http://example.com curl -i -H 'Accept:application/json' Authorization:Basic.base64_encode(username:password) http://example.com
curl -i -H 'Accept:application/json' Authorization:Basic <username:password> http://example.com
curl -i -H 'Accept:application/json' Authorization:Basic.base64_encode(username:password) http://example.com
curl-i-H'Accept:application/json'Authorization:Basichttp://example.com
curl-i-H'Accept:application/json'Authorization:Basic.base64_encode(用户名:密码)http://example.com
在授权前再次使用-H
标题:基本事项。就这样吧
curl -i \
-H 'Accept:application/json' \
-H 'Authorization:Basic BASE64_string' \
http://example.com
这里,BASE64\u string
=BASE64 ofusername:password
如何设置基本授权
您只需使用-u,--user用户[:密码]
。幕后curl
为您构建带有base64编码凭据的授权
头
例如:
curl -u username:password -i -H 'Accept:application/json' http://example.com
curl-D--X GET-H“授权:基本ZnJlZDpmcmVk”-H“内容类型:application/json”
一种方法是,提供--user
标志作为curl
的一部分,如下所示:
curl --user username:password http://example.com
curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/
另一种方法是从任何在线网站获取“username:password”的编码令牌,如-并将其作为curl
的Authorization
标题传递,如下所示:
curl --user username:password http://example.com
curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/
这里,dXNlcm5hbWU6cGFzc3dvcmQ=
是Base64
username:password背景的编码标记
您可以使用base64
CLI工具生成用户名+密码的base64编码版本,如下所示:
$ echo -n "joeuser:secretpass" | base64
am9ldXNlcjpzZWNyZXRwYXNz
-or-
$ base64 <<<"joeuser:secretpass"
am9ldXNlcjpzZWNyZXRwYXNzCg==
$ echo -n "joeuser:secretpass" | base64 | base64 -D
joeuser:secretpass
-or-
$ base64 <<<"joeuser:secretpass" | base64 -D
joeuser:secretpass
$ curl -H "Authorization: Basic $(base64 <<<"joeuser:secretpass")" http://example.com
示例#2-使用-u
大多数人可能会同意,如果您要费心这么做,那么您最好使用curl
的-u
选项
例如:
$ curl -u someuser:secretpass http://example.com
+ curl -skK /dev/fd/63 -XGET -H 'Content-Type: application/json' https://es-data-01a.example.com:9200/_cat/health
++ cat
+++ lpass show --username example.com
+++ lpass show --password example.com
1561075296 00:01:36 rdu-es-01 green 9 6 2171 1085 0 0 0 0 - 100.0%
但如果您将凭证保存在加密的vault服务(如或)中,则可以以半安全的方式执行此操作
例如,这里我使用LastPass的CLI工具,lpass
,来检索我的凭据:
$ curl -u $(lpass show --username example.com):$(lpass show --password example.com) \
http://example.com
示例#3-使用curl配置
不过,还有一种更安全的方法可以将您的凭证交给curl
。此方法使用-K
开关
$ curl -X GET -K \
<(cat <<<"user = \"$(lpass show --username example.com):$(lpass show --password example.com)\"") \
http://example.com
注意:上面我正在与我们的一个Elasticsearch节点通信,询问集群的运行状况
此方法动态创建一个包含user=“:”
内容的文件,并将其交给curl
HTTP基本授权
上面显示的方法促进了一种称为基本授权的功能,这是HTTP标准的一部分
当用户代理希望将身份验证凭据发送到
服务器,它可以使用授权字段
授权字段的构造如下所示:
curl --user username:password http://example.com
curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/
来源:在本例中,标题看起来像“Authorization:Basic base64(:)?我试图不理解的是“Basic”单词后面的符号的含义:),当然除了“username:password”“必须是base64编码,而不是像这里显示的那样简单…@DanielStenberg就是这个!这就是我的请求失败的原因,打得好。请正确设置代码格式并进行解释。感谢您提供base64编码令牌的信息,请不要使用在线网站对您的密码进行编码,伙计们。使用
echo-n“password”| base64
。您需要对这两个用户+pass进行编码:echo-n“username:password”| base64
。只需稍加挑剔,但不解密base64字符串,它正在解码:)@pauliketunen-ty已修复。另外-w0
应用于base64
命令,以禁用换行。