我有一种情况,salesforce连接到第三方应用程序和Salesforce社区门户网站,当用户单击一个按钮时,我们需要发送该社区用户的会话ID。
有了这个会话ID,第三部分应该向salesforce发出REST调用,并且REST Apex类应该运行HTTP GET方法,并在JSON响应中返回联系信息。这是可能的吗?
注意:我们不会让所有社区用户的用户名和密码用于任何类型的身份验证,当任何社区用户登录并单击按钮时,我们只是将该用户的会话ID发送到REST API主体中的第三方应用程序。第三方将只具有与该用户相关的会话ID,并且使用该会话ID,他们应该能够获得该社区用户的详细联系信息作为响应。
发布于 2019-01-29 14:20:03
Rav,您可以使用System.UserInfo.getSessionId()在Apex中使用retrieve the session Id并将其发送到第三方系统。然后,该系统可以将该值添加到HTTP头Authorization: Bearer TheSessionId。
然而……您可能会重新考虑这种方法-这取决于您对后端系统的控制程度。当您准备从Apex发出调用时,您已经可以访问用户详细信息。为什么不在最初的JSON中提供它们呢?即使系统需要稍后回调(在您需要会话id的位置),预先提供用户详细信息也可以节省一次网络呼叫。
https://stackoverflow.com/questions/51845292
复制相似问题