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) )