eBay API OAuth 范围问题“请求的范围无效、未知、格式错误或超出授予客户端的范围”

问题描述 投票:0回答:2

我一直在尝试沙箱和生产 eBay API。我设法让沙箱 API 正常工作,但前提是范围列表为空。如果我添加范围,它会返回错误消息

The requested scope is invalid, unknown, malformed, or exceeds the scope granted to the client
。我试图了解为什么会发生此错误以及如何更改范围。

这是为沙盒 API 返回的成功访问令牌。请注意,scopes 参数是如何未被选中的,并且不会在请求正文中发送。范围列表未指定,但它仍然有效并返回访问令牌。为什么是这样?不需要瞄准镜吗?

当我启用范围时,我收到错误

请求的范围无效、未知、格式错误或超出授予客户端的范围

让我们看一个例子:

我想使用“客户端凭据授予类型”而不是“授权代码授予”。 请注意,客户端凭据不需要用户授权,因为它仅供应用程序使用。因此,这篇文章不适用于该问题。

这是我的应用程序密钥集可以访问的客户端凭据范围。

在这里,我创建并发送范围为“https://api.ebay.com/oauth/api_scope”的请求。我已经根据文档对范围进行了 URL 编码。

在这里,我在邮递员中创建并发送请求,没有指定范围。成功返回访问码。

为什么指定了范围,访问码请求会失败?我是否不需要指定范围,因为我在文档中看到了这一点......

我如何知道端点是否属于“ebay 调用”并且不需要范围? ....或者需要范围吗?

oauth-2.0 token access-token ebay-api
2个回答
0
投票

为什么您的请求在没有范围的情况下成功

查看 bay api 网站上的此部分。

它说:

"Scopes and refresh tokens
When creating a User access token, you must supply a list of scopes in your consent request. (See Getting the list of scopes assigned to your application.) For more details, see The authorization code grant flow.

When requesting a refresh token, you can either:

include an optional scope parameter to supply a list of scopes; or

include no scope parameter and default to the set of scopes included in the consent request"

我相信当您发送没有范围的请求时,它默认为另一个范围列表,这就是您的请求在没有范围的情况下成功的原因。

为什么您的请求失败

本节中的同一页:它说: “用于生成新令牌的请求必须包含一个范围列表,该列表允许访问您计划使用该令牌调用的所有方法。”

我在您的示例中看不到您的所有范围,但我猜测您发送的请求没有应用程序所需的所有范围,如果您发送的请求不包含所有范围,它将拒绝您的请求.

如何检查令牌请求所需的范围

在该页面上有一个部分,其中介绍了查看请求所需的所有范围

如果您按照说明进行操作,您应该能够看到示例请求并查看您为应用程序分配了哪些类型的范围。

OAuth 可能很棘手,但看起来您走在正确的道路上!有时远离它也会有帮助,但我认为你走在正确的道路上,希望这会有所帮助!


0
投票

我有同样的问题,似乎客户端凭据授予类型不再支持所有范围,并且仅限于公共信息,而不是与该特定用户相关的范围。也许 eBay 决定我们必须全部使用应用程序身份验证工作流程,并每次都获得同意。

© www.soinside.com 2019 - 2024. All rights reserved.