#oauth-2.0 #huawei-mobile-services #huawei-developers #huawei-account
#oauth-2.0 #huawei-мобильные сервисы #huawei-разработчики #huawei-учетная запись
Вопрос:
Я использую режим кода аутентификации набора учетных записей Huawei для входа пользователей в мое приложение. Чтобы проверить поведение сервера приложений на сервере учетных записей, я использую команду cURL, показанную ниже, для получения токена доступа из кода авторизации. Но следующая команда вернет ошибку.
curl -v -H "Content-Type:application/x-www-form-urlencoded" -d @body.txt -X POST https://oauth-login.cloud.huawei.com/oauth2/v3/token
«body.txt » файл содержит необходимую информацию для запроса:
grant_type=authorization_codeamp;
code=DQB6e3x9zFqHIfkHR2ctp7htDs5tG5p6jXTkTCeoAAULtuS69PntuuD9pwqHrdXyvrlezuRc/aq zuDU7OnQdRpImnvZcEX RIOijYMXYu1j zxpQ W/J50Z7pY1qhyxZtavqkELY 6o2jSifaiIxC/MJc7KgqKV3jGn9kUIEZovSnMamp;
client_id=my_idamp;
client_secret=my_secreteamp;
redirect_uri=hms://redirect_uri
Команда возвращает:
> POST /oauth2/v3/token HTTP/1.1
> Host: oauth-login.cloud.huawei.com
> User-Agent: curl/7.64.0
> Accept: */*
> Content-Type:application/x-www-form-urlencoded
> Content-Length: 430
>
* upload completely sent off: 430 out of 430 bytes
< HTTP/1.1 400 Bad Request
< Date: Mon, 23 Nov 2020 03:38:21 GMT
< Content-Type: application/json
< Content-Length: 67
< Connection: keep-alive
< Cache-Control: no-store
< Pragma: no-cache
< Server: elb
<
* Connection #0 to host oauth-login.cloud.huawei.com left intact
{"sub_error":20152,"error_description":"invalid code","error":1101}
Что я должен сделать, чтобы этот вызов API работал с использованием cURL, как ожидалось?
Ответ №1:
Код аутентификации должен быть urlencoded перед отправкой. Команда в вопросе использовала этот код без urlencoding небуквенных символов. Пожалуйста, используйте ту же команду с закодированным кодом авторизации в качестве параметра для «code», чтобы выполнить запрос на получение токена доступа
Кодирование может быть выполнено встроенным, если это необходимо curl —data-urlencode «para1= value1»
Пожалуйста, обратитесь к: Link или с помощью онлайн-инструмента, такого как: Link
Использование других инструментов для получения токена доступа возможно, если параметры правильно закодированы в формате %2x.
Ответ №2:
Согласно информации об ошибке {"sub_error":20152,"error_description":"invalid code","error":1101}
, проблема вызвана неправильными параметрами кода.
Рекомендуется, чтобы вы могли проверить, совпадает ли значение кода в запросе с кодом авторизации, полученным мобильным приложением.
ПОДРОБНОСТИ см. в документации.
Комментарии:
1. Подробная информация очень полезна. Спасибо.