/// 令牌响应,对应服务端 `POST /api/auth/login` 与 `POST /api/auth/refresh`。 /// /// 与 Android 端 `network/model/TokenResponse` 字段保持一致。 class TokenResponse { final String accessToken; final String? refreshToken; final String? tokenType; /// accessToken 有效期(秒)。 final int expiresIn; const TokenResponse({ required this.accessToken, this.refreshToken, this.tokenType, this.expiresIn = 0, }); factory TokenResponse.fromJson(Map json) => TokenResponse( accessToken: (json['accessToken'] ?? '') as String, refreshToken: json['refreshToken'] as String?, tokenType: json['tokenType'] as String?, expiresIn: (json['expiresIn'] as num?)?.toInt() ?? 0, ); }