diff --git a/agenda/auth.py b/agenda/auth.py
index d44696a..3e2f2b8 100644
--- a/agenda/auth.py
+++ b/agenda/auth.py
@@ -20,10 +20,14 @@ def verify_auth_token(token: str) -> str | None:
 
 
 def require_authentication() -> werkzeug.Response | None:
-    """Require authentication."""
+    """Require authentication and redirect with return URL."""
     token = flask.request.cookies.get("auth_token")
-    return (
-        None
-        if token and verify_auth_token(token)
-        else flask.redirect(flask.current_app.config["UNIAUTH_LOGIN_URL"])
+    if token and verify_auth_token(token):
+        return None
+
+    # Construct the redirect URL with the original URL as a parameter
+    return flask.redirect(
+        flask.current_app.config["UNIAUTH_LOGIN_URL"]
+        + "?next="
+        + werkzeug.urls.url_quote(flask.request.url)
     )