cleanup method

  1. @override
Future<void> cleanup(
  1. Duration maxAge
)
override

Clean up expired sessions

Implementation

@override
Future<void> cleanup(Duration maxAge) async {
  final now = DateTime.now();
  final expiredSessions = <String>[];

  for (final entry in _sessions.entries) {
    final data = entry.value;
    final lastActivityStr = data['last_activity'] as String?;
    if (lastActivityStr != null) {
      try {
        final lastActivity = DateTime.parse(lastActivityStr);
        if (now.difference(lastActivity) > maxAge) {
          expiredSessions.add(entry.key);
        }
      } catch (e) {
        // Invalid timestamp, consider expired
        expiredSessions.add(entry.key);
      }
    }
  }

  for (final sessionId in expiredSessions) {
    _sessions.remove(sessionId);
  }
}