浏览 SDKs · Electron
平台
SDKsElectron

认证与初始化

使用 Electron FFI 的 initSDK、login 与 unInitSDK 建立登录会话,并对比 WASM 的一次性 login 参数。

复制

Electron FFI 形态把 SDK 初始化与用户登录拆开:先用 initSDK() 配置 OpenIMServer 地址和本地运行目录,再用 login() 提交 userID 与 Token。这与 WASM 认证与管理登录会话 中一次性传入 InitAndLoginConfig 的写法不同。

本页主要说明 Electron FFI 的生命周期 API。连接成功、Token 失效和踢下线等事件的处理机制与流程边界可参考认证与管理登录会话;Electron FFI 使用自身提供的事件枚举。

与 WASM 的差异

步骤Electron FFIWASM
配置服务地址与运行环境initSDK(InitConfig)包含在 login(InitAndLoginConfig) 中
提交用户凭据login({ userID, token })同一 login() 调用
释放原生 SDKunInitSDK()无对等的公开卸载 API;退出使用 logout()

Electron 渲染层如果走 WASM 形态,请直接按 WASM 认证页接入,不要调用本页的 initSDK()。

初始化 SDK

InitConfig 在初始化时写入服务地址、平台、本地数据目录和日志选项。

参数说明

字段类型是否必填说明
apiAddrstring是OpenIMServer 的 HTTP API 地址。
wsAddrstring是OpenIMServer 的 WebSocket 地址。
platformIDnumber是当前客户端平台枚举值,需符合 OpenIMServer 的多端登录策略。
dataDirstring是原生 SDK 本地数据目录的可写绝对路径。
systemTypestring是系统类型标识,按 Electron FFI SDK 约定填写。
logLevelLogLevel否日志级别。
logFilePathstring否日志文件路径。
isLogStandardOutputboolean否是否输出到标准输出。
await openimsdk.initSDK({
  apiAddr,
  wsAddr,
  platformID,
  dataDir: '/absolute/path/to/openim-data',
  systemType: 'electron',
  logLevel: LogLevel.Warn,
  isLogStandardOutput: false,
});

initSDK() 返回成功表示原生 SDK 已完成环境配置并准备就绪,随后即可调用登录接口;此时尚未建立长连接或用户会话。

登录当前用户

初始化成功后再调用 login()。FFI 登录只接收用户凭据:

参数说明

字段类型是否必填说明
userIDstring是当前 OpenIMSDK 用户 ID,必须与 Token 对应。
tokenstring是业务后端返回的 OpenIMSDK Token。
await openimsdk.login({
  userID,
  token,
});

login() 返回成功表示登录请求已发出并通过凭据校验;通常在收到连接成功事件后,长连接便建立完毕,即可正常调用后续业务 API。事件注册与监听细节见认证与管理登录会话。

退出与卸载

用户主动退出或切换账号时,先调用共享的 logout() 结束登录会话,再在需要释放原生资源时调用 unInitSDK()。

await openimsdk.logout();
await openimsdk.unInitSDK();

unInitSDK() 不接收业务参数。切换账号时,先完成旧账号退出与状态清理,再按需重新 initSDK() 并 login();不要并发初始化两个原生实例。

下一步