cleanup method
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);
}
}