2012-07-09 54 views
2

因此,根据Salesforce SOAP api的文档,如果我登录并启动一个需要1分钟注销的进程,那么其他人使用相同的凭证登录,并开始另一个进程,在注销之前需要30秒,当第二个用户注销时,它也会启动第一个用户。Salesforce REST API是否一次只允许一个连接,如SOAP API?

REST api是否有这个问题?有没有办法解决它?

回答

1

这实际上是一个会话管理问题,而不是您希望使用该会话调用的任何特定API。那就是说,你有两个简单的选择。

a)不要调用注销,只是让会话基于不活动过期,这样,如果会话碰巧被2个不同的集成共享,它不会导致问题。

b)切换到OAuth进行身份验证,并为每个集成提供自己的OAuth客户端/远程访问条目。 (会话不在不同的oauth客户端之间共享)。

1

你问题的答案是YES,REST Api有同样的问题。

从官方文档:

如果多个客户端应用程序中使用相同的用户登录, 他们都共享同一个会话。如果其中一个客户端应用程序 调用logout(),则会使所有客户端应用程序的会话无效。 为每个客户端应用程序使用不同的用户使 更容易避免这些限制。

Salesforce推荐我们避免这种情况的唯一方法是创建新用户。

您可以让自己的中央服务来管理独特的会话,并将活动的访问令牌给予客户端,但是这种方法就是采用force.com平台的解决方案。

+1

不要呼叫注销,会话!=连接 – superfell 2012-07-10 00:06:36