From 6464baebd2d549ce9b12316b151ba962dc7b31f8 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Sat, 4 Jul 2026 23:16:29 +0200 Subject: [PATCH] =?UTF-8?q?feat(auth):=20auto-login=20=C3=A0=20la=20valida?= =?UTF-8?q?tion=20d'email,=20redirection=20vers=20mes-infos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quand l'utilisateur valide son email, il est maintenant connecté automatiquement via login_user() et redirigé directement vers /compte/abonnement/mes-infos au lieu de /connexion?verified=1. Co-Authored-By: Claude Sonnet 5 --- src/auth/routes.py | 3 ++- tests/auth/test_verify_email.py | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/auth/routes.py b/src/auth/routes.py index 55cdb07..ef1ce9e 100644 --- a/src/auth/routes.py +++ b/src/auth/routes.py @@ -98,7 +98,8 @@ def verify_email(): if user_id is None: return redirect("/verification-email?error=invalid_token") db.set_email_verified(user_id) - return redirect("/connexion?verified=1") + login_user(User(db.get_user_by_id(user_id)), remember=True) + return redirect("/compte/abonnement/mes-infos") @auth_bp.route("/login", methods=["POST"]) diff --git a/tests/auth/test_verify_email.py b/tests/auth/test_verify_email.py index f7feb00..f1db547 100644 --- a/tests/auth/test_verify_email.py +++ b/tests/auth/test_verify_email.py @@ -1,15 +1,19 @@ from src.auth import db, tokens -def test_verify_email_valid_token_marks_user_verified(client, users_db_path): +def test_verify_email_valid_token_logs_in_and_redirects_to_mes_infos( + client, users_db_path +): db.init_schema() uid = db.create_user("a@b.c", "hash") token = tokens.create_verification_token(uid) resp = client.get(f"/auth/verify-email?token={token}") assert resp.status_code == 302 - assert "/connexion?verified=1" in resp.headers["Location"] + assert "/compte/abonnement/mes-infos" in resp.headers["Location"] assert db.get_user_by_id(uid)["email_verified"] == 1 + with client.session_transaction() as sess: + assert sess.get("_user_id") == str(uid) def test_verify_email_invalid_token(client):