我正在尝试将我的 iPad 应用程序与 Box 集成。我遇到了 Box API 的问题,其中一个用户帐户中的文件被返回给其他用户。以下是重现此问题的步骤:
- 如本指南中所述,进行授权调用并获取访问令牌。对于登录,我在 Safari 中打开 Box 登录页面。我为重定向 url 指定了一个自定义 url 方案,它会在用户登录后打开我的应用程序。
- 获得访问令牌后,调用以列出根文件夹的内容。这成功了。
- 从 iPad 上删除应用程序并重建它。
- 再次进入登录过程(如第 1 步),但这次使用不同的 Box 帐户登录。这次您将获得一个新的访问代码和 OAuth 令牌。
- 如果您使用新令牌进行调用以列出文件,您将收到来自早期帐户的响应。理想情况下,它应该返回当前授权用户的文件。
Box 是仅使用 OAuth 来返回响应还是也使用 cookie?因为在身份验证和接收访问令牌之后,我还看到了来自 Box 的 cookie(使用 验证[[NSHTTPCookieStorage sharedStorage] cookies]
)。
我尝试通过在启动身份验证流程之前删除所有 Box cookie 来重复上述过程。此外,我没有将 OAuth 令牌保存在磁盘上并检索它。我不会以任何方式保存/缓存响应。
我注意到的另一件事是,在 Safari 中可以有两个 Box 用户同时登录。此外,如果我发出身份验证请求,获取访问令牌并再次发出身份验证请求,它会再次显示登录页面(而不是显示允许/拒绝访问页面)。这是故意的吗?
我正在使用 Box v2 API 和 iOS 5/6