Я просто настроил учетную запись OneLogin и хочу выполнить базовый тест из командной строки с помощью curl в соответствии с документами на
https://developers.onelogin.com/api-docs/1/getting-started/working-with-api-credentials
и
https://developers.onelogin.com/api-docs/1/oauth20-tokens/generate-tokens-2
Я получаю "несанкционированный", несмотря на множество перестановок команды curl.Позвольте мне начать с команды curl, которая включена в документы во второй ссылке выше.Я делаю это:
curl 'https://api.us.onelogin.com/auth/oauth2/v2/token' \
-X POST \
-H "Authorization: client_id:144a1200f765fc67f1e, client_secret:d2dc92524169ee2" \
-H "Content-Type: application/json" \
-d '{
"grant_type":"client_credentials"
}'
(поддельные client_id и client_secret включены, чтобы вы могли видеть форму, которую они принимают в моем вызове, то есть пробелы, кодирование и т. Д.)
Ответ:
{"status":{"error":true,"code":401,"type":"Unauthorized","message":"Authentication Failure"}}
Итак, я попробовал все, что мог придумать в терминах строки «Авторизация».Вот несколько примеров того, что я попробовал:
# base64 encode just the client_id and the client_secret (i.e., separately encoded and independent)
Authorization: client_id:zODU1NjYwOTRiZjYwOWFiOWJiZDQ1NGZjNg==, client_secret:WIxY2NjZWJjNWJlZDJlZDdiYmFiMDZiYTkyNzY3M2IxZQ==
# result: unauthorized
# base64 encode "Basic <client_id:client_secret>"
Authorization: Basic NjllZTIxZGRjOWU5YjFjY2NlYmM1YmVkMmVkN2JiYWIwNmJhOTI3NjczYjFl
# result: unauthorized
# use Basic without base64 encoding id and secret
Authorization: Basic 094bf609ab9bbd454fc6:c5bed2ed7bbab06ba927673b1e
# result: unauthorized
И наконец ... вот изображение страницы с учетными данными, чтобы продемонстрировать, что я действительно создал id и секрет в нужном месте.