したがって、Salesforce の SOAP api のドキュメントによると、ログインしてログアウトする前に 1 分かかるプロセスを開始すると、他の誰かが同じ資格情報でログインし、ログアウトする前に 30 秒かかる別のプロセスを開始します。 2 番目のユーザーがログアウトすると、最初のユーザーも追い出されます。
REST API にこの問題はありますか? それを回避する方法はありますか?
したがって、Salesforce の SOAP api のドキュメントによると、ログインしてログアウトする前に 1 分かかるプロセスを開始すると、他の誰かが同じ資格情報でログインし、ログアウトする前に 30 秒かかる別のプロセスを開始します。 2 番目のユーザーがログアウトすると、最初のユーザーも追い出されます。
REST API にこの問題はありますか? それを回避する方法はありますか?
あなたの質問の答えは「はい」です。REST Api にも同じ問題があります。
公式ドキュメントから:
複数のクライアント アプリケーションが同じユーザーを使用してログインしている場合、 それらはすべて同じセッションを共有します。クライアント アプリケーションの 1 つが logout() を呼び出すと、すべてのクライアント アプリケーションのセッションが無効になります。クライアント アプリケーションごとに異なるユーザーを使用すると、これらの制限を回避しやすくなります。
これを回避するために Salesforce が推奨する唯一の方法は、新しいユーザーを作成することです。
固有のセッションを管理し、アクティブなアクセス トークンをクライアントに提供する独自の中央サービスを作成することもできますが、このアプローチは force.com プラットフォーム ソリューションから離れています。
これは、実際には、そのセッションを使用して呼び出したい特定のAPIよりもセッション管理の問題です。そうは言っても、2つの簡単なオプションがあります。
a)ログアウトを呼び出さないでください。非アクティブに基づいてセッションを期限切れにするだけです。そうすれば、セッションが2つの異なる統合によって共有されても、問題は発生しません。
b)OAuthに切り替えて認証を行い、各統合に独自のOAuthクライアント/リモートアクセスエントリを付与します。(セッションは異なるoauthクライアント間で共有されません)。