Loading
通过单击(而不是节点)展开 Salesforce
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          为 Lightning Out 2.0 设置身份验证

          为 Lightning Out 2.0 设置身份验证

          要让外部应用程序访问 Lightning Out 2.0 应用程序中的组件,必须在 Salesforce 中对最终用户进行身份验证。外部应用程序也必须被授权访问 Salesforce 资源。要设置身份验证和授权,请在贵组织中实施 OAuth 2.0 流并配置外部客户端应用程序 (ECA)。然后,配置外部应用程序,以调用 Lightning Out 2.0 UI 桥端点或标准 Salesforce UI 桥端点。该调用在运行时生成前门 URL,用于为 Lightning Out 2.0 应用程序建立 Salesforce 会话。

          所需的 Edition

          适用于:Lightning Experience

          适用于:ProfessionalEnterprisePerformanceUnlimited、所有 Agentforce 1 EditionDeveloper Edition

          所需用户权限
          创建本地外部客户端应用程序: 创建、编辑和删除外部客户端应用程序
          配置外部客户端应用程序 OAuth 设置: 创建、编辑和删除外部客户端应用程序
          修改 CORS 设置: 修改所有数据和自定义应用程序
          创建和修改 Lightning Out 2.0 应用程序: 自定义应用程序

          在开始前,完成准备构建 Lightning Out 2.0 应用程序中的步骤。

          1. 设计和实施支持的 OAuth 2.0 授权流
            重要
            重要 Lightning Out 2.0 支持 OAuth 2.0 流,这些流提供带有用户上下文的网络范围访问令牌,包括网络服务器流JSON Web 令牌不记名流。不支持客户端凭据流,因为它不提供用户上下文,因此 Salesforce 会从它的访问令牌中筛选出 Web 范围。
          2. 在贵组织中,创建启用了 OAuth 的外部客户端应用程序 (ECA)。
            使用这些说明进行设置:创建外部客户端应用程序并配置外部客户端应用程序 OAuth 设置。
          3. 在 ECA 中,使用这些 OAuth 设置。
            1. 包含通过 Web 浏览器 (web) 管理用户数据完全访问(完全) OAuth 范围。
              如果 ECA 使用 JWT 不记名流,还包括随时执行请求 (refresh_token) 范围。
            2. 如果 ECA 使用“流启用”部分中列出的流之一,请启用并配置该流的设置。
              请记住,Lightning Out 2.0 不支持客户端凭据流。
            3. 在“安全”部分,您可以保持选中这些默认设置:需要 Web 服务器流的密码、需要刷新令牌流的密码和支持的授权流的需要代码交换证明密钥 (PKCE) 扩展。
              Lightning Out 2.0 还支持刷新令牌轮换和基于 JWT 的访问令牌。
          4. 要在运行时获取前门 URL,请使用以下方法之一从外部应用程序调用 UI 桥 API 端点。

          从 Lightning Out 2.0 端点获取 Frontdoor URL

          Lightning Out 2.0 servlet 通过提供 CORS 支持来扩展 UI 桥 API,并将 Salesforce 资源访问权限限制为仅 Lightning Out 2.0 应用程序。

          Lightning Out 2.0 servlet 使用特殊的端点services/oauth2/lightningoutsingleaccess,而不是标准的 UI 桥 API 端点services/oauth2/singleaccess。该端点指向将有效 Salesforce 会话 ID (SID) 设置为 Cookie 的 Lightning Web Runtime 应用程序。SID 会随所有未来请求一起发送到组织,因此用户在使用 Lightning Out 2.0 应用程序时无需重新进行身份验证。

          重要
          重要 在请求 Lightning Out 2.0 UI 桥 API 端点之前,请确保从 Lightning Out 2.0 应用程序管理器中启用 Lightning Out 2.0 应用程序。见构建 Lightning Out 2.0 应用程序

          要从外部应用程序生成前门 URL,请向https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess端点发送 POST 请求。包含 Lightning Out 2.0 应用程序 ID 和 OAuth 2.0 访问令牌作为请求正文参数。

          请求正文参数 描述
          lightning_out_app_id

          必需。Lightning Out 2.0 应用程序 ID。

          您可以在应用程序的 Lightning Out 2.0 应用程序管理器页面上找到此 ID。

          此 ID 对应于 lightning-out-application Web 组件上的 app-id 属性的值。有关 Lightning Out 2.0 应用程序组件的更多信息,请参见 Lightning Web 组件开发人员指南 中的了解 Lightning Out 2.0 架构

          access_token

          必需。来自用户初始会话的有效 OAuth 2.0 访问令牌。

          它可以是不透明的访问令牌,也可以是基于 JSON Web 令牌 (JWT) 的访问令牌。访问令牌必须具有webfull范围。在颁发访问令牌的应用程序的外部客户端应用程序设置中指定范围。

          与访问令牌关联的用户不能拥有仅 API 用户权限。

          以下是使用 cURL 的 POST 请求示例。

          curl -X POST \
            'https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess' \
          --form 'access_token="access-token-value"' \
          --form 'lightning_out_app_id="app-id"'
          

          以下是另一个使用 JavaScript 的 POST 请求示例。确保将 Content-Type 标题声明为 application/x-www-form-urlencoded

          fetch(
              "https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess", 
              {
                  method: "POST",
                  headers: {
                      "Content-Type": "application/x-www-form-urlencoded"
                  },
                  body: "access_token=access-token-value&lightning_out_app_id=app-id"
              }
          )
              .then((response) => {
                  console.log("Status:", response.status);
                  return response.json();
              })
              .then((data) => {
                  console.log("Success:", data);
              })
              .catch((error) => {
                  console.error("Error:", error);
              });

          如果成功,UI 桥 API 会返回带有前门 URL 的 JSON 响应。

          HTTP/1.1 200 OK
          
          Content-Type: application/json
          Cache-Control: no-cache,must-revalidate,max-age=0,no-store,private
          ....
          
          {"frontdoor_uri":"https://MyDomainName.my.salesforce.com/secur/frontdoor.jsp?otp=otp_value"}

          如果不成功,API 会返回错误消息。有关错误消息描述,请查看生成前门 URL 以桥接到 UI 会话

          返回前门 URL 时,将lightning-out-application组件上的 frontdoor-url 属性设置为 frontdoor_uri 值。确保 frontdoor-url 属性值是仅 URL 的字符串,而不是整个 JSON 响应。

          提示
          提示 要审查哪些 HTML 元素构成 Lighting Out 2.0 应用程序,包括lightning-out-application组件定义,请参阅了解 Lightning Out 2.0 架构

          在设置frontdoor-url属性后,Lightning Web Runtime 应用程序会加载并设置有效的 Salesforce 会话 ID。Lightning Out 2.0 应用程序现在加载到外部主机页面上。

          从标准 UI 桥 API 端点获取前门 URL

          您可以从标准 UI 桥 API 端点services/oauth2/singleaccess获得前门 URL,而不是使用 Lightning Out 2.0 UI 桥 API 端点。此方法需要您为外部应用程序配置自己的服务器端授权流。但是,如果贵公司有特定的安全要求,这种方法允许更细粒度的控制。

          备注
          备注 与 Lightning Out 2.0 端点不同,标准 UI 桥 API 端点不支持在 Salesforce 设置中配置的 CORS 设置。

          有关说明,请查看生成前门 URL 以桥接到 UI 会话。在您的请求中,请勿包含 redirect_uri 参数。用户不会被带到 Salesforce 主页,而是会在外部主机页面上看到 Lightning Out 2.0 应用程序组件。

          返回前门 URL 时,将lightning-out-application组件上的 frontdoor-url 属性设置为 frontdoor_uri 值。确保 frontdoor-url 属性值是仅 URL 的字符串,而不是整个 JSON 响应。

          在设置frontdoor-url属性后,Lightning Web Runtime 应用程序会加载并设置有效的 Salesforce 会话 ID。Lightning Out 2.0 应用程序现在加载到外部主机页面上。

           
          正在加载
          Salesforce Help | Article