我想用 Javascript 开发一个前端(可能使用周围的奇特框架之一,例如 AngularJS),该前端使用我的 Salesforce 组织的 REST API。
我不想将我的项目嵌入 Salesforce 技术,所以基本上
- 没有 Visualforce 页面
- 没有 Force.com 网站
我确实想在单独的服务器上编写自己的前端,该服务器仅对 Salesforce 后端进行 AJAX 调用。
此外,我希望任何用户都可以访问该应用程序,即使他/她没有 Salesforce 帐户。因此,AJAX 调用不应要求用户登录 Salesforce。我希望匿名用户能够从我的组织检索公共(public)数据,并在有用时创建新条目(例如,在调查的情况下)。
尽管这些要求会产生一些安全问题,但我可以想象 Salesforce 会关心其 API 端点上的请求速率限制,并且可以基于主机名限制对 API 的访问(例如,仅请求应该允许原始主机 my-trusted-domain.com
,否则发送 403-Forbidden)。如果 SF 不提供这样的基本功能,我会感到惊讶。
你将如何进行?是否有一个最小的 Javascript 代码可以在任何域上开箱即用,而不会遇到 CORS 的麻烦?
最佳答案
对 Salesforce 的所有 REST API 调用都必须经过身份验证。如果您想要匿名 API 访问,那么您将需要通过添加身份验证 token 的服务器(如 Heroku 上的服务器)代理经过身份验证的调用。或者您可以使用Heroku Connect将您的 Salesforce 数据作为 Postrgres 数据库公开给 Heroku 应用程序。
如果您选择 REST 路线,请查看 ForceServer和我的CORS Proxy for Salesforce 。两者都不是针对您正在寻找的匿名访问进行开箱即用的设置,但可以轻松进行调整以支持该用例。
顺便说一句:当允许通过代理匿名访问您的 Salesforce 数据时,请确保您正确处理安全和请求限制。
关于javascript - 使用纯 Javascript 页面访问force.com REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026328/