Hue API远程基本身份验证

时间:2018-06-13 15:07:07

标签: node.js philips-hue

我在使用Hue远程API的基本身份验证方法时遇到问题。 当使用构建的Authorization-header发布到https://api.meethue.com/oauth2/token?code={code}&grant_type=authorization_code时,我得到了这个回复:

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

我假设我正在以错误的方式构建令牌,但docs(请参阅基本身份验证)对于实际操作有点模糊。

文档说我应该通过以下格式发送标头:Authorization: Basic <base64(clientid:clientsecret)>并且它应该在base-64中编码:

  

您需要发送一个基本授权标头,其中包含您的clientid和clientsecret的base64加密哈希值。

从Digest方法中,我假设使用了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 :(得分:0)

@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