logout static method

Future<bool> logout(
  1. HttpRequest request
)

Implementation

static Future<bool> logout(HttpRequest request) async {
  try {
    final cookie = request.cookies.firstWhereOrNull(
      (cookie) => cookie.name == "archery_session",
    );
    final authSessions = App().tryMake<List<AuthSession>>();

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

    if (session != null) {
      final sessionRecord = await Model.firstWhere<AuthSession>(
        field: "email",
        value: session.email,
      );
      await sessionRecord?.delete();
      authSessions?.remove(session);
      return true;
    }
    return false;
  } catch (e) {
    return false;
  }
}