cURL的-u标志实际上是做什么的?

48

我正在查看Stripe获取有关事件信息的cURL示例。

他们让我执行:

curl https://api.stripe.com/v1/events/evt_123 \
   -u sk_test_somekey:
cURL的文件说明中指出,-u 是使用USER:PASSWORD。但是我尝试将其作为 -d 或查询参数 ? 发送时,Stripe的API会提示缺少标头,这似乎不正确。我也不理解为什么用户名后面没有密码。如果我发送不带 : 的 cURL,则会提示输入密码。按回车键(不输入任何字符)后,我会得到预期的响应。因此,-u 到底是做什么的,以便我可以在我的代码中模仿这个调用?

3
不输入密码(无冒号)将会提示输入密码。只输入冒号表示密码为空。 - Daniel Stenberg
1个回答

67

curl -u会将username:password字符串编码为base-64字符串,并在Authorization头中传递,如下所示:

GET / HTTP/1.1
Host: example.com
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

这段内容不太容易理解,但它不是加密。任何一个使用 base 64 解码器的人都可以看到用户名和密码,因此确保您使用现代版本 TLS 设置 HTTPS。

你的 HTTP 库可能已经有一个函数来实现这个功能了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接