🔑 Salesforce 认证(SalesforceAuth)

管理用户的 Salesforce OAuth2 登录状态,提供登录、登出、再认证等功能,支持 Compact、Full、Badge 三种显示变体。

概述

SalesforceAuth 是 One Platform 负责 Salesforce OAuth2 认证的前端组件。它管理用户的 Salesforce 登录状态,提供登录、登出、再认证等功能,并通过多种显示变体适应不同的 UI 场景。

🖼️
SalesforceAuth 各变体截图 — 待插入
../../images/product/one_platform/salesforce-auth-variants.png

认证流程

Salesforce OAuth 流程
1
用户点击"登录到 Salesforce"
2
调用 startSalesforceLogin() API
后端返回 authUrl + code_verifier
3
打开 Salesforce 授权页面 (弹窗)
用户在 Salesforce 侧完成登录授权
4
回调页面通过 postMessage 通知主窗口
event.data.type === 'salesforce_oauth_success'
5
调用 checkAuthStatus() 获取认证信息
保存到 localStorage + 更新组件状态
6
显示用户信息和 Salesforce 连接状态

三种显示变体

Compact(紧凑模式)

用于 GlobalHeader 的用户资料弹出面板,显示用户名和 Salesforce 实例信息。

Full(完整模式)

用于独立页面或详情展示,包含完整的信息卡片:用户名、邮箱、用户ID、最后使用时间、令牌过期时间等。

Badge(徽章模式)

最简显示,仅展示连接状态徽章:[✓ Salesforce: 用户名][✗ 未连接Salesforce]

状态管理

认证状态

  • isLoggedIn — 是否已登录
  • authInfo — 用户认证信息(display_name, username, email, user_id, instance_url, last_used, expires_at)
  • isLoading — 是否加载中

操作状态

  • isProcessing — 是否正在处理
  • error — 错误信息

本地持久化

  • localStorage.salesforce_auth_info — 认证信息缓存
  • localStorage.salesforce_code_verifier — PKCE code_verifier

核心操作

登录

  1. 调用 startSalesforceLogin() 获取授权 URL
  2. 打开弹窗引导用户完成 Salesforce 授权
  3. 如果弹窗被阻止,提供手动 URL 复制方案
  4. 通过 postMessage 监听回调页面消息

登出

  1. 调用 logoutSalesforce() API
  2. 清除 localStorage 中的认证信息
  3. 重置组件状态
  4. 触发 onLogout 回调

再认证

  1. 使用 localStorage 中保存的 code_verifier
  2. 调用 reauthorizeWithCode() API
  3. 刷新认证状态

使用场景

场景变体位置
GlobalHeader 用户资料compact + showDetailsGlobalHeaderProfile Popover
独立认证页面full + showDetails单独页面
快速状态显示badge工具栏/设置区

技术要点

  • OAuth 方式:PKCE (Proof Key for Code Exchange) 授权码流程
  • 弹窗通信:window.postMessage API
  • 弹窗被阻止处理:检测 popupBlocked,提供手动打开 URL 或复制到剪贴板
  • 持久化:localStorage 缓存认证信息
  • 组件库:@salesforce/design-system-reactButton, Badge, Icon, Spinner, Card, Avatar, Notification

截图

🖼️
Compact 模式 - GlobalHeader 登录状态 — 待插入
../../images/product/one_platform/salesforce-auth-compact.png
🖼️
Full 模式 - 完整认证信息卡片 — 待插入
../../images/product/one_platform/salesforce-auth-full.png
🖼️
Badge 模式 - 徽章状态显示 — 待插入
../../images/product/one_platform/salesforce-auth-badge.png
🖼️
Salesforce 登录弹窗 — 待插入
../../images/product/one_platform/salesforce-auth-login-popup.png
🖼️
弹窗被阻止时的提示 — 待插入
../../images/product/one_platform/salesforce-auth-blocked.png

需要定制化解决方案?

我们的团队可基于现有产品为您量身打造专属 Salesforce 工具链。

联系我们