Могу ли я получить ответ JSON, просто используя идентификатор сеанса в salesforce?

У меня есть ситуация, когда Salesforce подключается к стороннему приложению и к порталу сообщества Salesforce, когда пользователь нажимает кнопку, нам нужно отправить идентификатор сеанса этого пользователя сообщества.

С этим идентификатором сеанса третья часть должна выполнить вызов REST в отдел продаж, а класс REST Apex должен запустить метод HTTP GET и вернуть контактные данные в ответе JSON. Это возможно ?

Примечание: у нас не будет имени пользователя и пароля всех пользователей сообщества для любого вида аутентификации, когда любой из пользователей сообщества войдет в систему и нажмет кнопку, в это время мы просто отправляем идентификатор сеанса этого пользователя этой третьей стороне. app в теле REST API. и третья сторона будет иметь только идентификатор сеанса, связанный с этим пользователем, и с этим идентификатором сеанса они должны иметь возможность ПОЛУЧИТЬ контактные данные этого пользователя сообщества в качестве ответа.


person Rav    schedule 14.08.2018    source источник


Ответы (1)


Рав, вы можете получить идентификатор сеанса в Apex с помощью System.UserInfo.getSessionId() и отправьте его в стороннюю систему. Затем эта система может добавить значение в HTTP-заголовок Authorization: Bearer TheSessionId.

Однако ... вы можете переосмыслить этот подход - в зависимости от того, насколько вы контролируете эту внутреннюю систему. Когда вы готовите вызов из Apex, у вас уже есть доступ к сведениям о пользователе. Почему бы не предоставить их в исходном JSON? Даже если системе потребуется перезвонить позже (где вам нужен идентификатор сеанса), предварительное предоставление сведений о пользователе сэкономит вам сетевой вызов.

person stwissel    schedule 29.01.2019