Hue API удаленная базовая аутентификация - PullRequest
0 голосов
/ 13 июня 2018

У меня проблемы с использованием метода базовой аутентификации для удаленного API Hue.При отправке сообщения на https://api.meethue.com/oauth2/token?code={code}&grant_type=authorization_code со встроенным заголовком авторизации я получаю такой ответ:

{
  "fault": {
    "faultstring": "Invalid client identifier {0}",
    "detail": {
      "errorcode": "oauth.v2.InvalidClientIdentifier"
    }
  }
}

Я предполагаю, что токен создается неправильно, но docs (см. Basic Authentication) немного неясно, что на самом деле делать.

В документах говорится, что я должен отправить заголовок через этот формат: Authorization: Basic <base64(clientid:clientsecret)> и что он должен быть закодирован в base-64:

вам нужно будет отправить базовый заголовок авторизации, который включает в себя зашифрованный base64 хэш вашей клиентской и clientsecret.

А из дайджест-метода я предполагаю, что используется MD5, а затемпереварено на base-64.

Вот что я попробовал, все с одним и тем же кодом ошибки:

'Basic ' + crypto.createHash('md5').update(clientId + clientSecret).digest('base64')

'Basic ' + crypto.createHash('md5').update(clientId + ':' + clientSecret).digest('base64')

'Basic ' + (clientId + ':' + clientSecret).toString('base64')

'Basic ' + (clientId + clientSecret).toString('base64')

Что еще можно попробовать?

1 Ответ

0 голосов
/ 03 апреля 2019

@ Tokfrans

вы можете создать тестовый токен с помощью clientid: secret, используя сайт https://www.base64encode.org/

, он даст вам действительный токен, который вы можете использовать с обычной аутентификацией

имейте в виду, что сначала вам нужно получить код, который вы затем сможете использовать для получения маркера доступа https://api.meethue.com/oauth2/auth?clientid=xxxxxx&appid=xxxxx&deviceid=xxxx&devicename=xxxx&state=xxxx&response_type=code

...