这里 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集成