外观
service.miaccount
约 667 字大约 2 分钟
2026-07-15
小米帐号系统服务桥,用于扫码登录、取得 Service Token,并对小米帐号请求参数进行加解密。
import miaccount from '@service.miaccount'这些方法采用快应用常见的 options + success/fail/complete 回调模型。回调数据会包含帐号标识、Token 或加密材料,不应写入日志。
方法总览
| 方法 | 关键参数 | 用途 |
|---|---|---|
getUserId | 无或回调对象 | 读取当前系统帐号用户 ID |
loginByScan | serviceId | 发起手表扫码登录 |
getServiceToken | serviceId、accountType | 读取已缓存的服务 Token |
refreshServiceToken | serviceId、accountType | 强制刷新服务 Token |
setEnv | 0 或 1 | 切换帐号服务环境 |
getEnv | 无 | 读取环境 |
encryptRequestParams | 加密参数对象 | 生成帐号协议要求的加密请求参数 |
decryptResponseData | security、data | 解密服务响应 |
扫码登录
interface LoginByScanOptions {
serviceId: string
cServiceId?: string
cBackUri?: string
loginCallback?: string
success?: (result: object) => void
fail?: (result: object, code?: number) => void
complete?: () => void
}serviceId 是原生实现强制检查的字段。预装汽车应用还传入当前业务的 cServiceId、回跳 URI 和登录回调地址。成功结果可包含登录 URL、二维码或过期时间;具体字段取决于帐号服务版本。
miaccount.loginByScan({
serviceId: 'your-service-id',
cServiceId: 'your-client-service-id',
cBackUri: 'https://example.invalid/callback',
loginCallback: 'https://example.invalid/login-result',
success(result) {
// 用页面二维码组件展示 result 中的登录地址。
},
fail(data, code) { console.error(code) }
})用户与 Service Token
getUserId(options?: Callbacks): void
getServiceToken(options: {
serviceId: string
accountType?: string | number
success?: (result: ServiceTokenResult) => void
fail?: FailureCallback
complete?: () => void
}): void
refreshServiceToken(options: GetServiceTokenOptions): void固件关联字段包括 serviceToken、security、stsCookies 和 expireTime。调用方必须按 expireTime 刷新,不要永久缓存 Token;security 是后续请求加解密材料,不是可展示字段。
环境
setEnv(env: 0 | 1): void
getEnv(options?: Callbacks): void原生实现只接受 0 或 1。它们分别代表哪个部署环境由产品配置决定,不能在没有真实配置表时写成“正式/预发”。修改环境会令已有登录态、Token 和服务器地址不匹配,只应由系统应用在初始化阶段设置。
请求加解密
encryptRequestParams(options: object): void
decryptResponseData(options: {
security: string
data: string
success?: (plainText: string) => void
fail?: FailureCallback
complete?: () => void
}): voidencryptRequestParams 的输入是待加密参数及当前帐号安全材料组成的对象;预装应用把返回结果进行 URI 编码后用于网络请求。decryptResponseData 强制要求 security 与 data。不要自行实现或替换其加密算法,系统帐号服务会管理密钥格式与轮换。
机型可用性
| Xiaomi Smart Band 10 Pro | Xiaomi Watch S4 41mm |
|---|---|
| ❌ | △ |
获取源代码
- openvela Feature Framework 当前没有公开该厂商服务的 JIDL 或 C++ 实现。
- Feature Framework 仓库