假设您的站点接受用户登录凭据作为基本身份验证 (Authorization: Basic ...),并且它支持多个授权标头:
basic_auth_header()
{
BASIC_AUTH=$(printf "%s:%s" "$1" "$2" | base64);
echo "Authorization: Basic $BASIC_AUTH"
}
curl -H "$(basic_auth_header ba_user ba_pw)" -H "$(basic_auth_header fe_user fe_password)" https://dev.example.com/import_log/1234/status
也就是说,通常网站在访问令牌(Authorization: Bearer ... 标头)中接受登录凭据,因此不能使用 curl -u user:password ... 或 curl https://user:password@... 登录这些网站。
如果是这种情况,那么您需要弄清楚如何从您的登录凭据生成访问令牌并使用:
curl -H Authorization: Bearer <access token> https://ba_user:ba_pw@dev.example.com/import_log/1234/status
您可以按如下方式测试这些情况:
在一个终端窗口中:
nc -l -p 50505
在另一个终端窗口中:
curl http://localhost:50505/
以下是一些结果:
curl http://localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
User-Agent: curl/7.47.0
Accept: */*
curl http://user1:password1@localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
User-Agent: curl/7.47.0
Accept: */*
curl -u user1:password1 http://localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
User-Agent: curl/7.47.0
Accept: */*
curl -u user1:password1 http://user1:password1@localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
User-Agent: curl/7.47.0
Accept: */*
curl -u user2:password2 http://localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjI6cGFzc3dvcmQy
User-Agent: curl/7.47.0
Accept: */*
curl -u user1:password1 http://user2:password2@localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
User-Agent: curl/7.47.0
Accept: */*
curl -u user1:password1 -u user2:password2 http://localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
Authorization: Basic dXNlcjI6cGFzc3dvcmQy
User-Agent: curl/7.47.0
Accept: */*
curl -H 'Authorization: Basic dXNlcjE6cGFzc3dvcmQx' -H 'Authorization: Basic dXNlcjI6cGFzc3dvcmQy' http://localhost:50505/
GET / HTTP/1.1
Host: localhost:50505
User-Agent: curl/7.47.0
Accept: */*
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Authorization: Basic dXNlcjI6cGFzc3dvcmQy