1

我有一个基于 BlackBerry Java 的应用程序,它使用 Salesforce 数据并使用 oauth 2 进行身份验证。直到最近用户一直抱怨说,一旦他们进入接受/拒绝 salesforce oauth 页面,单击 Accept 按钮会显示一个 salesforce 404 页面,它一直运行良好。

我在 bb 模拟器 (OS7) 上附加了一个调试器,发现一切正常,直到通过 Salesforce oauth2 用户代理流程在身份验证/授权的最后阶段按下 ACCEPT 按钮时向 Salesforce 发送 POST。此时,帖子将成功,响应正文将包含一些带有小 JavaScript 块的标记,该块仅执行 document.location.href 分配以强制浏览器导航到新 URL。我注意到 URL 不是我所期望的 - 我期望看到 redirect_uri 回调地址 + 访问令牌等数据附加到它的末尾(根据 sf oauth2 文档)。

如果我在说 chrome 中执行相同的流程,那么帖子后的 URL 就是我所期望的。这一切过去都很好,所以我很困惑为什么它会突然停止工作。我听说 Salesforce 在 2011 年底稍微改变了他们的 oauth 2 实施,所以我想知道这是否破坏了我的客户,尽管我不知道如何。

作为一个实验,我删除了除嵌入式 BrowserField 之外的所有代码,并使其导航到 oauth URL,该 URL 是通过根据文档组合消费者密钥和各种其他值而构建的,但在单击时它仍然失败并出现 404 页面成功登录后的接受按钮。

如果我在内置的 bb 浏览器中尝试相同的引导 oauth URL,则完整的身份验证流程可以正常工作,并且我最终会被重定向到带有访问令牌信息的最终回调 URL。

BrowserField 上的 oauth2 用户代理流程(来自 field2 包)是否有其他人遇到问题?

4

2 回答 2

2

您是否尝试过使用“scope=mobile”参数?此参数使您进入一个非常简化的为黑莓优化的 oauth 流程......我们发现他们通常难以通过为 iOS/Android 设计的更丰富的流程。也就是说,我还没有听说他们在 BB7 上有问题……只有 5 和有时 6 系列

如果失败,您可以向我们开一个支持案例吗?

于 2012-01-05T18:59:16.990 回答
1

也可以尝试“ display=mobile”和“ scope=api web”(带空格),具体取决于您在 OAuth 之后尝试访问的内容。

于 2012-01-05T19:02:44.573 回答