按照 TOKEN_REFACTOR.md / FIX_CONFIG.md 方案重构核心层: - miot: Init() 优先读 storage token,新增 RefreshAuthInfo() 和刷新回调 - xiaomi: Config 改用 AuthInfo 结构体(含 UUID/UID/DataDir/OnTokenRefreshed) - xiaomi: NewClient(ctx, Config) 新签名,新增 RefreshToken(),后台自动刷新 - xiaomi/devices: 设备控制接口重构 - 新增示例 12_ac_subscribe,其余示例适配新 Config
21 lines
873 B
Go
21 lines
873 B
Go
package xiaomi
|
||
|
||
// AuthInfo OAuth token 信息。
|
||
type AuthInfo struct {
|
||
AccessToken string `json:"access_token"`
|
||
RefreshToken string `json:"refresh_token"`
|
||
ExpiresIn int `json:"expires_in"` // 有效期(秒)
|
||
ExpiresTS int64 `json:"expires_ts"` // 过期时间戳(unix),0 则内部按 expires_in 计算
|
||
}
|
||
|
||
// Config 客户端初始化配置。
|
||
type Config struct {
|
||
AuthInfo AuthInfo // OAuth token 信息
|
||
UUID string // MIPS 设备标识,OAuth 前生成,永久不可变
|
||
UID string // 小米帐号 UID,OAuth 后从 API 获取
|
||
DataDir string // 存储根路径(token/设备/SPEC 缓存),多用户场景每个用户用不同目录,如 ./data/{uid}
|
||
|
||
// OnTokenRefreshed 后台自动刷新成功时回调,供调用方将新 token 持久化到数据库。
|
||
OnTokenRefreshed func(accessToken, refreshToken string)
|
||
}
|