fix: logout supprime access_token cookie + bouton toujours visible
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s

- Backend: delete_cookie access_token (/) + refresh_token
- Logout ne requiert plus auth (graceful si token expire)
- Bouton Deconnexion toujours visible dans le menu
This commit is contained in:
2026-06-16 12:43:50 -04:00
parent 9f382e4960
commit 83279b536f
3 changed files with 10 additions and 11 deletions
+8 -5
View File
@@ -217,18 +217,21 @@ async def refresh_token_endpoint(request: Request, response: Response):
async def logout(
request: Request,
response: Response,
current_user=Depends(require_auth),
):
"""Logout: revoke refresh token and delete cookie."""
"""Logout: revoke refresh token and delete cookies."""
refresh_tok = request.cookies.get("refresh_token")
if refresh_tok:
payload = decode_token(refresh_tok)
if payload:
revoke_token(payload["jti"])
try:
revoke_token(payload["jti"])
except Exception:
pass # token already revoked
response.delete_cookie("refresh_token", path="/api/auth/refresh")
logger.info(f"User '{current_user['username']}' logged out")
return {"message": "Déconnecté avec succès"}
response.delete_cookie("access_token", path="/")
response.delete_cookie("access_token", path="/api") # just in case
return {"message": "Deconnecte avec succes"}
@router.get("/me")
-1
View File
@@ -662,7 +662,6 @@
id="logout-btn"
type="button"
role="menuitem"
style="display:none"
>
<span
class="menu-list-icon"
+2 -5
View File
@@ -630,12 +630,9 @@ function initConfigModal() {
});
}
// Logout button
// Logout button (always visible)
var logoutBtn = document.getElementById("logout-btn");
if (logoutBtn && AuthManager && AuthManager._authEnabled) {
// Show if user is logged in
var user = AuthManager.getCurrentUser();
if (user) logoutBtn.style.display = '';
if (logoutBtn) {
logoutBtn.addEventListener("click", function() {
if (confirm("Voulez-vous vraiment vous deconnecter ?")) {
fetch("/api/auth/logout", { method: "POST" })