POST /api/logout
Déconnecte l'utilisateur et invalide le refresh token.
Endpoint
POST /api/logout
Headers
| Header | Valeur | Requis |
|---|---|---|
| Authorization | Bearer {token} | Oui |
| Content-Type | application/json | Oui |
Corps de la requête
{
"refresh_token": "string"
}
| Champ | Type | Requis | Description |
|---|---|---|---|
| refresh_token | string | Non | Token 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 :
- Supprimer le token d'accès du stockage
- Supprimer le refresh token du stockage
- Rediriger l'utilisateur vers la page de connexion
- 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