这里 API 返回 Unrecognized Kid Null 错误

Posted

技术标签:

【中文标题】这里 API 返回 Unrecognized Kid Null 错误【英文标题】:Here API returns Unrecognized Kid Null error 【发布时间】:2020-12-09 11:42:48 【问题描述】:

这是我的 cURL 请求

curl https://geocode.search.hereapi.com/v1/geocode?q=5%20Rue%20Daunou%2C%2075000%20Paris%2C%20France -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXX"

这是回复

"error":"Unauthorized","error_description":"Token Validation Failure - unrecognized kid null"

我不确定发生了什么。我尝试了不同的访问密钥。我生成了新的。但不断收到同样的错误。

【问题讨论】:

它是什么api? @Yadu 它是一个休息 API。 请删除文档 您确定您的令牌正确吗?如果我在 URL 中使用我的 apikey 进行相同的调用,它可以正常工作。 【参考方案1】:

“访问密钥 ID”不是您需要在 Authorization 标头中发送的令牌,这就是为什么您会收到 “令牌验证失败”.

然而,“访问密钥 ID”是生成 OAuth 令牌所需的凭证参数之一,另一个参数是“访问密钥秘密”。

如果您尚未保存访问密钥,请转到您的 HERE Account Project Management Space 并确保下载凭据文件:

在凭证文件中,注意最后三行:

here.access.key.id = redacted
here.access.key.secret = redacted_redacted_redacted
here.token.endpoint.url = https://account.api.here.com/oauth2/token

然后,我们可以使用 Postman 生成 OAuth 令牌:

打开 Postman 并创建一个新请求。 方法POST,网址:https://account.api.here.com/oauth2/token 转到 Auth 选项卡并选择: 类型:OAuth 1.0 将身份验证数据添加到请求标头(可能是默认选项) 签名方法:HMAC-SHA256 Consumer Key:输入here.access.key.id 值 消费者秘密:输入here.access.key.secret 值 转到正文选项卡并选择: x-www-form-urlencoded 键:grant_type,值:client_credentials 发送请求。您应该会收到一个访问令牌。那应该适用于您的 curl 请求。

身份验证标签

正文标签

注意

作为记录,以下不使用 OAuth 而是在 REST 部分下找到的“API 密钥”也有效:

curl https://geocode.search.hereapi.com/v1/geocode?apiKey=<REST-API-KEY>&q=5%20Rue%20Daunou%2C%2075000%20Paris%2C%20France

但是,Geocode API Reference 没有记录 apiKey 身份验证,这与其他 HERE API 不同,例如Routing,除了偶尔尝试 curl 请求外,我不推荐它。

【讨论】:

【参考方案2】:

我找到了一个非常简单的解决方案。我删除了 Authorization 标头并将“apiKey”查询参数添加到我的 URL。

例如:

https://revgeocode.search.hereapi.com/v1/revgeocode?48.2181679%2C16.3899064&lang=en-US&apiKey=TOKEN

【讨论】:

以上是关于这里 API 返回 Unrecognized Kid Null 错误的主要内容,如果未能解决你的问题,请参考以下文章

来自 Shopify API 调用的 `[API] Invalid API key or access token (unrecognized login or wrong password)` 随机

$.ajaxFileUpload必须返回Map对象,返回String类型会接收出错,报错Error: Syntax error, unrecognized expression: {...}(示例代码

Xamarin.iOS unrecognized selector sent to class

unrecognized selector sent to class ShareSDK集成

linux系统关于 unrecognized service

Stata报错:command spatwmat is unrecognized