handle method

  1. @mustCallSuper
  2. @override
Future handle(
  1. Request req
)
override

Implementation

@mustCallSuper
@override
handle(Request req) async {
  if (basic) {
    bool loggedIn = await getSession<bool?>('logged_in') ?? false;
    String guard = await getSession<String?>('auth_guard') ?? '';
    if (loggedIn && guard.isNotEmpty) {
      Map<String, dynamic> user =
          await getSession<Map<String, dynamic>?>('auth_user') ?? {};
      Auth().guard(guard).login(user[guard]);
    } else {
      throw Unauthenticated(
        message: loginPath,
        responseType: ResponseType.html,
      );
    }
  } else {
    String? token = req.header('authorization')?.replaceFirst('Bearer ', '');
    try {
      if (guard == null) {
        await Auth().check(token ?? '');
      } else {
        await Auth().guard(guard!).check(token ?? '');
      }
    } on JWTExpiredException {
      throw Unauthenticated(message: 'Token expired');
    }
  }
}