Что на самом деле делает флаг -u на cURL?
Я смотрю на пример cURL в Stripe для получения информации о событии.
Они заставили меня сделать:
curl https://api.stripe.com/v1/events/evt_123 \
-u sk_test_somekey:
Документация для cURL гласит, что -u делает USER:PASSWORD.
Когда я попытался отправить это как -d или как запрос?, API Stripe сообщает, что мне не хватает заголовка. Это не кажется правильным.
Я также не понимаю отсутствие пароля после имени пользователя. Если я отправлю этот CURL без ":", мне будет предложено ввести пароль. Нажав Enter (без ввода символов), я получаю ожидаемый ответ.
Итак, что именно -u делает, чтобы я мог имитировать этот вызов в своем коде?
1 ответ
curl -u
кодирует username:password
строка в строку base-64, которая передается в Authorization
заголовок, вот так:
GET / HTTP/1.1
Host: example.com
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Это не легко снять, но это и не шифрование. Любой пользователь с декодером base 64 может видеть имя пользователя и пароль, поэтому убедитесь, что вы настроили HTTPS.
Ваша HTTP-библиотека, вероятно, имеет функцию, которая делает это за вас.