Salesforce Lightning: Как я могу получить идентификатор сеанса текущего пользователя в компоненте Salesforce lightning? - PullRequest
0 голосов
/ 03 июля 2018

У меня есть требование для вызова REST API из компонента молнии Salesforce, для этого мне нужно иметь идентификатор сеанса этого пользователя при запросе службы REST. Но в текущей версии (Summer 18) Salesforce идентификатор сеанса, который я получаю из UserInfo, всегда недействителен, это означает, что salesforce не дает идентификатор сеанса в выпуске Summer 18. Есть ли альтернатива для получения идентификатора сессии Summer18?

1 Ответ

0 голосов
/ 22 октября 2018

У меня была такая же проблема. Похоже, что идентификатор сеанса, полученный в контексте Lightning, не имеет прав для авторизации запросов REST ...

Я использовал обходной путь для получения идентификатора сеанса в контексте Lightning через контекст Visualforce.

Создать следующую страницу Visualforce с SessionId именем:

<apex:page standardStylesheets="false" lightningStylesheets="false">
    <span style="display: none">
        SESSION_ID_START{!$API.Session_ID}SESSION_ID_END
    </span>
</apex:page>

Создать getSessionIdFromVFPage() служебный метод для получения содержимого страницы SessionId и получения значения идентификатора сеанса:

public class Util {
    public static String getSessionIdFromVFPage() {
        if(Test.isRunningTest()) {
            return 'SESSION_ID';
        } else {
            String SESSION_ID_START = 'SESSION_ID_START';
            String SESSION_ID_END = 'SESSION_ID_END';
            String pageContent = Page.SessionId.getContent().toString();
            Integer startIndex = pageContent.indexOf(SESSION_ID_START) + SESSION_ID_START.length();
            Integer endIndex = pageContent.indexOf(SESSION_ID_END);
            return pageContent.substring(startIndex, endIndex);
        }
    }
}

Значение идентификатора сеанса, возвращаемое методом Util.getSessionIdFromVFPage() и используемое в контексте Lightning, работает для моих запросов (т. Е. В методах @AuraEnabled).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...