text method

Future<HttpResponse> text([
  1. dynamic data
])

Sends plain text response.

Implementation

Future<HttpResponse> text([dynamic data]) async {

  response.headers.contentType = ContentType.text;
  response.headers.set(HttpHeaders.cacheControlHeader, 'public, max-age=300, must-revalidate');
  response.headers.set(HttpHeaders.varyHeader, 'Accept-Encoding');

  // --- Security headers ---
  response.headers.set('X-Content-Type-Options', 'nosniff');
  response.headers.set('X-Frame-Options', 'SAMEORIGIN');
  response.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin');
  response.headers.set('X-XSS-Protection', '1; mode=block');

  final csrfCookie = cookies.firstWhereOrNull((c) => c.name == 'archery_csrf_token');
  final cookie = Cookie('archery_csrf_token', csrfCookie?.value ?? App.generateKey())
    ..httpOnly = true
    ..secure = true
    ..sameSite = SameSite.lax
    ..path = '/';

  return response
    ..statusCode = HttpStatus.ok
    ..cookies.add(cookie)
    ..write(data)
    ..close();
}