因此,根据 Salesforce 的 SOAP api 的文档,如果我登录并启动一个在我注销前需要 1 分钟的进程,那么其他人使用相同的凭据登录并开始另一个在注销前需要 30 秒的进程,当第二个用户注销,它也会踢出第一个用户。
REST api 有这个问题吗?有办法解决吗?
因此,根据 Salesforce 的 SOAP api 的文档,如果我登录并启动一个在我注销前需要 1 分钟的进程,那么其他人使用相同的凭据登录并开始另一个在注销前需要 30 秒的进程,当第二个用户注销,它也会踢出第一个用户。
REST api 有这个问题吗?有办法解决吗?
您的问题的答案是肯定的,REST Api 也有同样的问题。
来自官方文档:
如果多个客户端应用程序使用同一个用户登录, 它们都共享同一个会话。如果其中一个客户端应用程序调用 logout(),它将使所有客户端应用程序的会话无效。为每个客户端应用程序使用不同的用户可以更轻松地避免这些限制。
销售人员建议我们避免这种情况的唯一方法是创建新用户。
您可以创建自己的中央服务来管理唯一会话,并将活动访问令牌提供给客户端,但这种方法是 force.com 平台解决方案。
这实际上是一个会话管理问题,而不是您想使用该会话调用的任何特定 API。也就是说,您有 2 个简单的选择。
a)不要调用注销,只是让会话基于不活动而过期,这样如果会话恰好由 2 个不同的集成共享,它不会导致问题。
b) 切换到 OAuth 进行身份验证,并为每个集成提供其自己的 OAuth 客户端/远程访问条目。(会话不在不同的 oauth 客户端之间共享)。