middleware static method

Future middleware(
  1. HttpRequest request,
  2. Future<void> next()
)

Implementation

static Future<dynamic> middleware(HttpRequest request, Future<void> Function() next) async {
  final cookie = request.cookies.firstWhereOrNull((cookie) => cookie.name == "archery_session");
  final authSessions = App().tryMake<List<AuthSession>>();

  if (cookie == null || authSessions == null || authSessions.isEmpty) {
    await next();
    return;
  }

  final session = authSessions.firstWhereOrNull((session) => session.cookie?.value == cookie.value);

  if (session != null) {
    return request.redirectToDashboard();
  }

  await next();
}