destroySession method

Future<void> destroySession(
  1. HttpResponse response,
  2. String? sessionId
)

Implementation

Future<void> destroySession(HttpResponse response, String? sessionId) async {
  if (sessionId == null) return;

  switch (driver) {
    case 'memory':
      _memoryStore.remove(sessionId);
      break;

    case 'file':
      final sessions = await _readSessions();
      sessions.remove(sessionId);
      await _writeSessions(sessions);
      break;

    case 'db':
      await DB.query(
        'DELETE FROM $dbTable WHERE id = ?',
        positionalParams: [sessionId],
      );
      break;
  }

  // Delete cookie
  response.cookies.add(
    Cookie('FLINTSESSID', '')
      ..path = '/'
      ..maxAge = 0,
  );
}