我可以仅使用Salesforce中的会话ID来获取JSON响应吗?

时间:2018-08-14 15:47:44

标签: rest web-services salesforce apex salesforce-communities

我遇到一种情况,当用户单击按钮时,我们需要发送该社区用户的会话ID,从而使Salesforce与第三方应用程序以及从Salesforce社区门户连接。

使用该会话ID,第三部分应该对Salesforce进行REST调用,而REST Apex类应该运行HTTP GET方法并在JSON响应中返回Contact详细信息。这可能吗 ?

注意:当任何一个社区用户登录并单击按钮时,我们不会拥有所有社区用户的任何身份验证用户名和密码,那时我们只是将该用户的会话ID发送到REST API主体中的第三方应用程序。并且第三方将仅具有与该用户相关的会话ID,并且使用该会话ID,他们应该能够获取该社区用户的联系方式作为响应。

1 个答案:

答案 0 :(得分:1)

Rav,您可以使用System.UserInfo.getSessionId()在Apex中retrieve the session Id,并将其发送给第三方系统。然后,该系统可以将值添加到HTTP标头Authorization: Bearer TheSessionId

但是...。您可能会重新考虑这种方法-取决于您对该后端系统的控制程度。当您准备从Apex拨打电话时,您已经可以访问用户详细信息。为什么不在初始JSON中提供它们?即使系统需要稍后(在需要会话ID的地方)回叫,提前提供用户详细信息也会为您节省网络通话。