ADX201 - Lesson 4: Security and Data Access
让我们来聊聊如何在Salesforce中使用OAuth 2.0来编码您的应用程序,特别是当涉及到跨域回调问题时。
首先,想象一下,您的Canvas应用程序被嵌入到Salesforce的一个页面中,这个页面是通过一个iFrame加载的。这里的问题在于,由于Canvas应用程序和Salesforce页面位于不同的域名下,Canvas应用程序不能直接向Salesforce的域名(比如*.salesforce.com)发送XML HTTP请求(XHR)。这是因为浏览器的同源策略限制了这种跨域请求。
那么,我们怎么解决这个问题呢?Salesforce提供了一个解决方案,那就是使用Canvas SDK中的JavaScript客户端代理。这个代理允许您的Canvas应用程序通过它来发送XHR请求到Salesforce。具体来说,当您的应用程序使用这个代理发送请求时,代理会处理这个请求,将它转发到外部的iFrame,然后代表您的应用程序提交这个请求。
一旦Salesforce处理完这个请求,SDK会将结果返回给您的应用程序,并调用您预先定义好的回调函数。这样,您的应用程序就可以接收到来自Salesforce的响应,即使它们位于不同的域名下。
总结一下,通过使用Salesforce提供的Canvas SDK中的客户端代理,您可以绕过跨域的限制,安全地从您的Canvas应用程序向Salesforce发送请求,并处理返回的数据。这种方法既简单又有效,是开发Salesforce集成应用时的一个好帮手。