4

我正在尝试使用他们的 OAuth 2.0 界面连接到 Salesforce.com。我找到了像LROAuth2Client这样的解决方案,它允许我打开一个网页并像这样进行身份验证。但是有没有办法通过后端完成这一切而无需先访问网页,以便我可以将它更多地集成到应用程序中?

我是 OAuth 的新手,所以我不知道所有的限制。

提前致谢。

4

3 回答 3

6

Salesforce 支持 OAuth2 用户名/密码选项,这一切都无需网页即可完成。例如使用 curl 你会做

curl -v https://login.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=xxxxxxxxxx" -d "client_secret=1234567890" -d "username=noreply@salesforce.com" -d "password=XXXXXXXXX"

话虽如此,web/interactive 流在 iOS 中使用起来非常简单,使用自定义方案 URL 进行回调(尝试使用库可能比实际更难)。基于 Web 的流程对于配置了替代身份验证流程(例如基于 SAML 的 SSO)的用户来说很重要,这在用户名/密码流程上不起作用。

Dreamforce'10 的 REST 和 OAuth 会话的某个地方应该有一个在线视频,安全 PM 在舞台上编写了一个基于 iPhone oAuth 客户端的应用程序。

于 2011-02-10T17:06:34.327 回答
0

这取决于你的目标。使用 oauth2 的一个原因是您希望更好地了解正在运行的内容。例如,假设您有许多 cron API 应用程序都连接到同一个站点。在这种情况下,由于它们是 cron 应用程序,因此您甚至不必在 cron 服务器上运行 Web 浏览器。您当然可以只配置用户名和密码,但是如果您重置了密码,则必须更新所有 cron 服务器,而且您甚至不一定知道有多少台服务器。特别是如果他们是通过 NAT 来的。

在这种情况下,一个非常可行的解决方案是使用salesforce 上的视觉强制页面作为回调URL。管理员可以登录 salesforce,然后使用视觉强制页面生成刷新令牌,然后他们移交给 cron 作业使用。

你知道在你的审计阶段有 oauth 2。您分发的令牌可以限制为 API。希望如果salesforce没有正确地使用oauth 2,您可以根据需要在用户登录时重置密码,而不会影响您分发的令牌。

账单

于 2012-08-14T12:37:21.767 回答
0

还有另一种方法。您可以访问我的网站了解该方法。

于 2014-01-03T08:17:11.717 回答