diff --git a/adminlte2_pdq/middleware.py b/adminlte2_pdq/middleware.py
index 0463a6f315ceadc6efe27cb2a39d764ba195d0e6..89292c635c7c5692f64b57233450f46570eae8ab 100644
--- a/adminlte2_pdq/middleware.py
+++ b/adminlte2_pdq/middleware.py
@@ -80,14 +80,17 @@ class AuthMiddleware:
         app_name = resolver.app_name
         current_url_name = resolver.url_name
         fully_qualified_url_name = f"{app_name}:{current_url_name}"
-        if (
+        return (
             current_url_name in LOGIN_EXEMPT_WHITELIST
             or fully_qualified_url_name in LOGIN_EXEMPT_WHITELIST
             or path in LOGIN_EXEMPT_WHITELIST
-        ):
-            return True
+            or self.login_required_hook(request)
+        )
+
 
-        # Failed all tests, return False
+    def login_required_hook(self, request):
+        """Hook that can be overridden in subclasses to add additional ways
+        to pass the login required criteria. Should return either True or False."""
         return False