refactor: 重构 token 管理,新增 NATS adapter 和多示例
按照 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
This commit is contained in:
+17
-7
@@ -1,10 +1,20 @@
|
||||
package xiaomi
|
||||
|
||||
// Config 客户端初始化配置。
|
||||
// AccessToken 必填,UUID/UID 对 MIPS 客户端和 cert 初始化有帮助。
|
||||
type Config struct {
|
||||
ClientSecret string // OAuth Client Secret
|
||||
AccessToken string // OAuth Access Token
|
||||
UID string // 小米账号 UID(选填,用于 cert 初始化)
|
||||
UUID string // MQTT 客户端标识(选填,空则自动生成)
|
||||
// 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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user