K Kinda-e

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

evenementQuandContenuQue faire
compte_modifieNom, 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_desactiveCompte supprimé, désactivé ou banni par l'équipeuser_idFermer ses sessions et cacher son profil.
deconnecter_partout« Tout déconnecter », changement de mot de passe, ou action de l'équipeuser_idFermer 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);