【问题标题】:Using an authentication token obtained from v1 API in a V2 API request在 V2 API 请求中使用从 v1 API 获得的身份验证令牌
【发布时间】:2012-12-03 05:33:32
【问题描述】:

由于我找不到如何使用我的 Box 凭据通过 V2 API 进行身份验证,我尝试使用来自 V1 API 的身份验证令牌和 V2 请求。

我发现了一些奇怪的东西,我想知道是否有问题。

验证 V2 请求的标头文档对 curl 命令的描述如下): curl -k -L https://api.box.com/2.0/files/5053864602/content -H "授权:承载AUTH_TOKEN"

使用 curl 我什么也得不到,甚至没有错误消息。 但是我用 Postman 尝试了这个请求,在响应中我可以看到令牌无效。

在这个论坛中,我发现标题可能有不同的形式,包括 api_key 所以我尝试了以下方法: curl -k -L https://api.box.com/2.0/files/5053864602/content -H "授权:BoxAuth api_key=API_KEY&auth_token=AUTH_TOKEN"

这个请求有效,因为我可以像通过 V1 API 调用一样获取文件的内容。

BOX 的人能解释一下发生了什么吗?我怀疑我不是唯一一个有这个问题的人......

【问题讨论】:

  • 我可以看到 API 文档已更改。 4-5 天前 Authorization 标头包含 authToken 和 APIkey。可能是 BOX 的技术变化。需要等待BOX开发者回复。

标签: box-api


【解决方案1】:

Box API 现在支持 OAuth 2,它具有完全修改的身份验证流程。您可以在此处找到有关如何将 OAuth 2.0 与 Box 一起使用的说明:http://developers.box.com/oauth/

V2 API 仍然支持 V1 样式的身份验证,但它最终会被弃用。但是,如果您现在开始针对 Box API 进行构建,则应该使用 OAuth 2,以避免将来不得不做双重工作和移植。

V1 风格的身份验证和 OAuth 2.0 之间存在一些差异,但值得注意的是,在 OAuth 2.0 中,您不必使用 API 密钥(现在在 OAuth 2.0 中称为“客户端 ID”)签署 API 请求,只有您通过身份验证过程获得的 access_token。

您可以在我之前的链接中阅读有关我们实施 OAuth 2 的更多信息,以及一般规范 here

【讨论】:

  • Sean,您是说如果我们想使用 V2 API,我们现在需要实现 OAuth2,还是现在可以选择?
  • 目前 V1 auth 和 OAuth 2 都可以与 V2 API 一起使用,但我们计划最终在 V2 API 中取消对 V1 Auth 的支持(不早于几个月后)。当 V1 API 在一年内完全弃用时,V1 风格的身份验证也将随之弃用。 OAuth 2 更加安全和标准化,因此我们显然鼓励人们尽快采用它。
  • 我之所以问,是因为运行良好的请求现在报告“错误的身份验证令牌”,而我的代码和新身份验证的用户没有任何变化。
  • 嗯,这很奇怪。到目前为止,我们还没有听说其他人发生过这种情况。我们的一些官方客户(例如我们的 iOS 应用程序)正在使用 V1 身份验证,并且没有遇到过这样的事情。如果您仍然遇到此问题,可能值得在这里发布您遇到的问题,以便我们帮助解决问题。
  • 我遇到了(似乎是)类似的问题。将 'boxauth' 替换为 'bearer' 或 'boxapi' 授权标头将导致 400: 'malformed_auth_header' 对于标准和 shared_link 请求。
猜你喜欢
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 2016-09-26
  • 2016-05-30
相关资源
最近更新 更多