middleware static method
Implementation
static Future<dynamic> middleware(
HttpRequest request,
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) {
return request.redirectToLogin();
}
final session = authSessions.firstWhereOrNull(
(session) => session.cookie?.value == cookie.value,
);
if (session == null) return request.redirectToLogin();
if (!_validateSession(session)) {
await logout(request);
return request.redirectToLogin();
}
session.lastActivity = DateTime.now();
return next();
}