authData method

  1. @override
Future<({Map<String, Object?> data, String sessionId})?> authData(
  1. bool foreground
)

认证帧的内容;没有会话时为 null。令牌已过期的先续期。

Implementation

@override
Future<({Map<String, Object?> data, String sessionId})?> authData(bool foreground) async {
  if (auth.accessExpired()) await auth.renew();
  final session = auth.session;
  if (session == null) return null;
  final data = <String, Object?>{
    'token': session.accessToken,
    'device_id': deviceId,
    'sdk_version': sdkVersion,
    'os_version': truncateUtf8(deviceInfo.osVersion, 64),
    'state': foreground ? 'foreground' : 'background',
  };
  final appVersion = opts.appVersion ?? deviceInfo.appVersion;
  if (appVersion != null && appVersion.isNotEmpty) data['app_version'] = truncateUtf8(appVersion, 64);
  return (data: data, sessionId: session.sessionId);
}