Webhooks
Si votre application garde une copie des comptes (nom, photo...), Kinda-e peut la prévenir immédiatement quand un compte change. Donnez à l'équipe une adresse de webhook (HTTPS) lors de l'enregistrement de l'application.
Événements
evenement | Quand | Contenu | Que faire |
|---|---|---|---|
compte_modifie | Nom, nom d'utilisateur, photo, email... modifiés, ou compte réactivé | user (objet utilisateur complet) | Mettre à jour votre copie ; réafficher le profil s'il était caché. |
compte_desactive | Compte supprimé, désactivé ou banni par l'équipe | user_id | Fermer ses sessions et cacher son profil. |
deconnecter_partout | « Tout déconnecter », changement de mot de passe, ou action de l'équipe | user_id | Fermer toutes ses sessions chez vous. |
Format
Requête POST avec un corps JSON :
{"evenement": "compte_desactive", "horodatage": 1793534400, "user_id": 1234}Kinda-e attend la réponse au plus 5 secondes et ne réessaie pas : répondez vite (code 200), et faites les traitements longs ensuite.
Vérifier la signature
Chaque message porte l'en-tête X-Kindae-Signature : un HMAC-SHA256 du corps brut. La clé est l'empreinte SHA-256 (en hexadécimal) de votre client_secret. Refusez tout message dont la signature est fausse ou dont l'horodatage a plus de 5 minutes.
<?php
const KINDAE_CLIENT_SECRET = 'LE_SECRET';
$corps = file_get_contents('php://input');
$attendu = hash_hmac('sha256', $corps, hash('sha256', KINDAE_CLIENT_SECRET));
if (!hash_equals($attendu, $_SERVER['HTTP_X_KINDAE_SIGNATURE'] ?? '')) {
http_response_code(401);
exit;
}
$message = json_decode($corps, true);
if (abs(time() - (int) ($message['horodatage'] ?? 0)) > 300) {
http_response_code(400);
exit;
}
switch ($message['evenement']) {
case 'compte_modifie':
// mettre à jour l'utilisateur $message['user']['id'] avec $message['user']
break;
case 'compte_desactive':
case 'deconnecter_partout':
// supprimer les sessions de l'utilisateur $message['user_id']
break;
}
http_response_code(200);