Authn.tech
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • JWT / JOSE
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • 国内平台 SSO
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • 扫码登录演示
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • 飞书 SAML
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 微信扫码登录
  • 企业微信扫码登录
  • 简体中文
  • English
  • Deutsch
GitHub
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • JWT / JOSE
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • 国内平台 SSO
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • 扫码登录演示
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • 飞书 SAML
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 微信扫码登录
  • 企业微信扫码登录
  • 简体中文
  • English
  • Deutsch
GitHub
  • 国内平台 SSO

    • 国内平台 SSO 对接
    • 飞书 SSO 对接实现
    • 飞书 SSO:与标准的差距与改造建议
    • 钉钉 SSO 对接实现
    • 钉钉 SSO:与标准的差距与改造建议
    • 微信扫码登录
    • 微信扫码登录:与标准的差距与改造建议
    • 企业微信扫码登录
    • 企业微信扫码登录:与标准的差距与改造建议
    • 喜马拉雅车载 SDK 账户互通对接实现
    • 喜马拉雅车载 SDK 账户互通:与 OIDC/OAuth2 标准的差距
    • QQ 音乐第三方登录(账号绑定)对接实现
    • QQ 音乐第三方登录:与标准的差距与改造建议
    • 网易云音乐 OpenAPI 登录对接实现
    • 网易云音乐登录:与标准的差距与改造建议

喜马拉雅车载 SDK 账户互通对接实现

本页讲怎么落地对接喜马拉雅车载 SDK 的「账户互通」(账号绑定 / 同登同退)。它与标准 OIDC/OAuth2 的差距、风险与改造建议,单独成文:喜马拉雅账户互通:与 OIDC/OAuth2 标准的差距。

依据喜马拉雅《车载 SDK 文档》→「账户」→「账户互通」(最低版本 1.0.6.0)。

这是什么

车机端 / TSP 服务端接入喜马拉雅 SDK,用车机自己的用户体系打通喜马拉雅账户:

  • 绑定 / 同登:车机用户一键登录到喜马拉雅账户;
  • 解绑 / 同退:车机退出时同步退出喜马拉雅。

核心是:通过车机的用户信息,在喜马拉雅侧完成双方账户绑定,从而用车机端用户信息登录喜马账户。

准备工作(向喜马申请)

  1. thirdAppId —— 账户互通的客户标识。申请邮箱 [email protected]:
    • 同品牌多车型要互通 → 各车型共用同一个 thirdAppId;
    • 车型间账号独立 → 申请各自独立的 thirdAppId(可分别提供测试 / 正式的验证接口 URL)。
  2. 第三方账户信息验证接口(公网可访问) —— 由你方实现,喜马云端回调它校验用户合法性并拿回第三方 uid 用于绑定。见下文第三方账户信息验证接口。

接入流程

绑定 / 同登

车机用户中心            车机端 APK                喜马 SDK / 云端
   │  触发绑定/同登          │                          │
   │ ─────────────────────► │  ① 查询是否已与喜马绑定    │
   │                        │ ───────────────────────► │
   │                        │  已绑定 → SDK 已登录,同登成功
   │                        │  未绑定 ↓                 │
   │                        │  ② 调 SDK 扫码登录喜马账户 │
   │                        │  ③ 登录后调 bind 接口绑定  │
   │                        │ ───────────────────────► │
   │                        │  ④ 收到绑定成功           │
   │  ⑤ 同步 TSP 绑定状态 ◄─ │                          │
  1. 车机已登录状态下,由车机用户中心触发,跳到车机端应用界面,先查询是否已与喜马绑定;
  2. 已绑定 → 喜马 SDK 已处于登录态,同登成功;
  3. 未绑定 → 车机 APK 调用喜马 SDK 的扫码登录能力登录喜马账户(接口见喜马 SDK 文档「用户 → 二维码登录」);
  4. 扫码登录后,车机 APK 调 bindThirdAccount 绑定;
  5. 收到绑定成功通知后,车机 APK 同步 TSP 服务端。

解绑 / 同退

  1. 同退:直接调喜马 SDK 的退出登录接口即可;
  2. 解绑:带第三方账户信息调 unbindThirdAccount,喜马云端完成第三方账户信息验证后解绑;
  3. 解绑后,车机 APK 同步解绑关系到 TSP 服务端。

SDK 端接口(Android · IXmCarAdvanceAPI)

四个方法签名一致,均为 (String thirdAppId, String body, ResultReceiver callback):

方法作用
loginByThird(thirdAppId, body, cb)用第三方账户信息登录(已绑定则成功;未绑定失败,需走扫码流程)
bindThirdAccount(thirdAppId, body, cb)账户绑定
unbindThirdAccount(thirdAppId, body, cb)账户解绑
getThirdAccountBoundState(thirdAppId, body, cb)查询第三方账号绑定状态

入参

字段说明
thirdAppId账户互通客户标识,向喜马申请
body调用第三方账号接口的入参报文(JSON),喜马回调你方验证接口时原样透传

回调返回值(ResultReceiver 的 Bundle)

KEY类型说明
XmConstants.EXTRA_ERR_CODEInt成功 CODE_SUCCESS;失败 CODE_REMOTE_ERROR(loginByThird/bind 中"未绑定"也返回 CODE_REMOTE_ERROR)
XmConstants.EXTRA_ERR_MSGString异常原因
XmConstants.EXTRA_DATABundle详细信息(含下表);getThirdAccountBoundState 操作成功时无论是否绑定都会返回

EXTRA_DATA Bundle 内字段:

字段说明
thirdUid第三方 UID(查询接口下未绑定为 null)
ximaUid喜马拉雅 UID(查询接口下未绑定为 null)

第三方账户信息验证接口(你方实现)

喜马云端会用绑定/解绑等接口里传入的 body 回调此接口来校验用户。

  • 方法:POST,application/json
  • URL:http(s)://合作方域名/合作方path
  • 入参:即各 SDK 接口传入的 body(喜马原样透传)
  • 返回:

成功:

{ "code": 200, "third_uid": "xxxxx" }

失败:

{ "code": 500, "msg": "该用户不存在", "third_uid": null }
返回字段类型必须说明
codeint是成功 200,其他 500
third_uidString否第三方 uid(或 openID);报错 / 不存在可不填
msgString否报错原因,code=500 时需要

安全提示

文档未定义任何签名 / 加密 / 来源认证,喜马通过公网 HTTP(S) 调你方接口且只透传 body。务必自行在 body 里带签名 + 时间戳(如 HMAC + 防重放)并强制 HTTPS,否则接口在公网裸奔。这一点及其它与标准的差距详见 标准差距评价。

参考

  • 喜马拉雅账户互通:与 OIDC/OAuth2 标准的差距与改造建议
  • OAuth 2.0 文档 · OpenID Connect 文档
  • 喜马拉雅车载 SDK 官方文档(账户 → 账户互通)
最近更新: 2026/7/24 10:19
贡献者: linux, Claude Opus 4.8
Prev
企业微信扫码登录:与标准的差距与改造建议
Next
喜马拉雅车载 SDK 账户互通:与 OIDC/OAuth2 标准的差距