我在使用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')
还有什么可以尝试的?
答案 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