首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Salesforce Lightning:如何在Salesforce lightning组件中获取当前用户的会话Id?

Salesforce Lightning:如何在Salesforce lightning组件中获取当前用户的会话Id?
EN

Stack Overflow用户
提问于 2018-07-03 18:10:13
回答 1查看 3.8K关注 0票数 3

我需要从Salesforce lightning组件调用REST API,因为在请求REST服务时,我需要具有该用户的会话id。但是,在Salesforce的当前版本( 18夏季)中,我从UserInfo获得的会话id总是无效的,这意味着salesforce在18夏季版本中不会给出会话id。是否有其他方法可以在Summer18中获取会话Id?

EN

回答 1

Stack Overflow用户

发布于 2018-10-22 05:01:07

我也有同样的问题。在Lightning上下文中检索到的会话Id看起来没有授权REST请求的权限...

我使用了变通方法通过Visualforce上下文在Lightning上下文中获取会话Id。

使用SessionId名称创建以下Visualforce页面:

代码语言:javascript
复制
<apex:page standardStylesheets="false" lightningStylesheets="false">
    <span style="display: none">
        SESSION_ID_START{!$API.Session_ID}SESSION_ID_END
    </span>
</apex:page>

创建getSessionIdFromVFPage()实用程序方法以获取SessionId页面的内容并检索会话Id的值:

代码语言:javascript
复制
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);
        }
    }
}

会话Id的值由Util.getSessionIdFromVFPage()方法返回,并在Lightning上下文中用于我的请求(即在@AuraEnabled方法中)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51151926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档