BrowserField2 - salesforce oauth2在Accept / Deny阶段失败

时间:2012-01-05 18:07:46

标签: oauth salesforce browserfield

我有一个基于BlackBerry java的应用程序,可以使用salesforce数据并使用oauth 2进行身份验证。直到最近用户一直抱怨他们进入接受/拒绝salesforce oauth页面,点击“接受”按钮显示salesforce 404页面时,它一直运行正常。

我将一个调试器附加到bb模拟器(OS7),发现一切正常,直到通过salesforce oauth2用户代理在认证/授权的最后阶段按下ACCEPT按钮向salesforce发出POST流。此时,帖子将成功,响应正文将包含一些标记,其中包含一个小的JavaScript块,只执行document.location.href赋值以强制浏览器导航到新的URL。我注意到URL不是我所期望的 - 我期望看到redirect_uri回调地址+访问令牌等数据附加到它的末尾(根据sf oauth2文档)。我所看到的是一个URL,在导航时引导用户返回登录页面,并显示一条消息,说明他们正在尝试访问需要身份验证的资源。

如果我在说Chrome中执行相同的流程,帖子后面的URL就是我所期望的。这一切都习以为常,所以我很困惑为什么它会突然停止工作。我听说Salesforce在2011年底稍微改变了他们的oauth 2实现,所以我想知道这是否打破了我的客户,尽管我没有看到如何。

作为一项实验,我删除了除嵌入式BrowserField之外的所有代码,并将其导航到oauth URL,这是根据文档组合使用者密钥和各种其他值而构建的,并且仍然在404页面上失败成功登录后单击“接受”按钮。

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

有没有其他人在BrowserField上使用oauth2用户代理流程(来自field2包)?

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用“scope = mobile”参数?此参数将为您提供针对黑莓优化的非常简化的oauth流程...我们发现他们通常无法通过为iOS / Android设计的更丰富的流程。也就是说,我没有听说他们在BB7上遇到过问题......只有5个,有时是6个系列

如果失败了,你能和我们一起打开支持案例吗?

答案 1 :(得分:1)

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