Aller au contenu principal

POST /api/logout

Déconnecte l'utilisateur et invalide le refresh token.

Endpoint

POST /api/logout

Headers

HeaderValeurRequis
AuthorizationBearer {token}Oui
Content-Typeapplication/jsonOui

Corps de la requête

{
"refresh_token": "string"
}
ChampTypeRequisDescription
refresh_tokenstringNonToken de rafraîchissement à invalider

Réponse succès

Code: 200 OK

{
"message": "Successfully logged out"
}

Réponses erreur

401 Unauthorized - Token invalide

{
"code": 401,
"message": "JWT Token not found"
}

Exemples

cURL

curl -X POST https://sig.ucp-pch.org/api/logout \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "d1f2a3b4c5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0"
}'

JavaScript

const logout = async () => {
const token = localStorage.getItem('token');
const refreshToken = localStorage.getItem('refresh_token');

try {
await fetch('https://sig.ucp-pch.org/api/logout', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
refresh_token: refreshToken
})
});
} finally {
// Toujours nettoyer le stockage local
localStorage.removeItem('token');
localStorage.removeItem('refresh_token');

// Rediriger vers la page de connexion
window.location.href = '/login';
}
};

Python

import requests

token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
refresh_token = "d1f2a3b4c5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0"

response = requests.post(
'https://sig.ucp-pch.org/api/logout',
headers={
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
},
json={
'refresh_token': refresh_token
}
)

if response.status_code == 200:
print("Déconnexion réussie")

Comportement

Côté serveur

  • Le refresh token est invalidé dans la base de données
  • Les tokens JWT déjà émis restent valides jusqu'à leur expiration naturelle
  • L'utilisateur devra se reconnecter pour obtenir de nouveaux tokens

Côté client

Après la déconnexion, le client doit :

  1. Supprimer le token d'accès du stockage
  2. Supprimer le refresh token du stockage
  3. Rediriger l'utilisateur vers la page de connexion
  4. Nettoyer tout état d'application lié à l'utilisateur

Notes

  • La déconnexion est recommandée avant de fermer l'application
  • Même sans appeler l'API logout, le token expire naturellement après 1 heure
  • Pour une sécurité maximale, appelez toujours l'API logout pour invalider le refresh token