WikiPlus

Décoder les timestamps dans les tokens JWT et réponses API

Les tokens JWT contiennent systématiquement des timestamps Unix dans leurs claims : `exp` (expiration), `iat` (émission) et `nbf` (pas avant). Lors du débogage d'une API ou d'un problème d'authentification, savoir rapidement si un token est expiré ou quelle était son heure d'émission exacte est crucial. Le Convertisseur de Timestamp de WikiPlus transforme ces valeurs numériques en dates humainement lisibles en quelques secondes, sans aucune donnée transmise à un serveur.

Les timestamps dans les tokens JWT : exp, iat et nbf

Un token JWT (JSON Web Token) est composé de trois parties encodées en Base64url séparées par des points. La partie centrale (payload) contient des claims JSON, parmi lesquels des timestamps standardisés. Le claim `exp` (expiration time) est la date après laquelle le token ne doit plus être accepté. Le claim `iat` (issued at) est la date d'émission du token. Le claim `nbf` (not before) est la date avant laquelle le token ne doit pas être utilisé. Ces trois valeurs sont exprimées en timestamps Unix en secondes. Pour les déchiffrer, il suffit de copier la valeur numérique et de la coller dans le Convertisseur de Timestamp. Un token avec `exp: 1716050000` expire le 19 mai 2024 à 04:13:20 UTC. Si la valeur actuelle de `Date.now()/1000` est supérieure à `exp`, le token est expiré et l'API renverra une erreur 401 Unauthorized.

Déboguer les réponses d'API avec des timestamps epoch

Les APIs REST moderne retournent souvent des timestamps Unix dans leurs réponses JSON, notamment pour les dates de création, modification et expiration des ressources. Un objet GitHub commit contient `author.date` en ISO 8601 mais un payload Stripe Payment Intent inclut `created` comme timestamp Unix. Les logs AWS CloudWatch utilisent des timestamps en millisecondes. Kubernetes stocke `creationTimestamp` en UTC mais d'autres champs en epoch. Le Convertisseur de Timestamp permet de déchiffrer rapidement n'importe laquelle de ces valeurs. Lors d'un débogage d'intégration API, la question fréquente est : « Quand exactement cet événement s'est-il produit par rapport à mon autre événement ? » — une question à laquelle un timestamp epoch répond sans ambiguïté.

Timestamps dans les logs serveur : analyser les incidents de production

Les logs d'application et système enregistrent le temps de plusieurs façons. Les logs Apache et Nginx utilisent le format [12/May/2026:14:30:00 +0200]. Les logs syslog utilisent des priorités et horodatages RFC 3164. Les logs structurés (JSON) utilisent souvent des timestamps Unix en millisecondes. Lors d'un incident de production, les ingénieurs doivent corréler des événements entre plusieurs systèmes avec des formats de timestamp différents. Le Convertisseur de Timestamp permet de traduire rapidement un timestamp epoch trouvé dans un log Elasticsearch ou un événement AWS CloudTrail vers une heure lisible, ou inversement de générer un timestamp epoch correspondant à une heure précise pour filtrer des logs avec `awk` ou `grep`. Tout se fait localement, ce qui est important quand les logs contiennent des données sensibles.

Générer des timestamps futurs pour les tâches planifiées

La conversion inverse — d'une date lisible vers un timestamp Unix — est tout aussi utile. Les cron jobs Linux acceptent les expressions temporelles, mais certaines plateformes cloud (AWS Lambda scheduled events, GitHub Actions scheduled workflows, Kubernetes CronJob) nécessitent des timestamps epoch pour définir des déclencheurs précis. La commande `at` d'Unix accepte des timestamps. Les bases de données comme Redis (TTL) et Cassandra (TTL) utilisent des secondes pour définir l'expiration des clés. En saisissant une date future dans le Convertisseur de Timestamp, vous obtenez immédiatement le timestamp epoch correspondant, prêt à copier-coller dans votre configuration. C'est particulièrement pratique pour créer des tokens de test avec une date d'expiration précise ou pour configurer des alertes basées sur du temps dans des systèmes de monitoring.

Questions fréquemment posées

Comment extraire les timestamps d'un token JWT ?
Copiez la partie centrale du JWT (entre les deux points). Décodez-la depuis Base64url (WikiPlus a un outil Base64 dédié). Le JSON résultant contient les claims `exp`, `iat` et `nbf` en timestamps Unix secondes. Collez chacune de ces valeurs dans le Convertisseur de Timestamp pour voir les dates correspondantes.
Comment convertir une date précise en timestamp Unix ?
Dans le Convertisseur de Timestamp, sélectionnez le mode « date vers epoch ». Choisissez votre date et heure dans le sélecteur. L'outil génère instantanément le timestamp Unix en secondes et en millisecondes. En JavaScript, vous pouvez aussi utiliser `new Date('2026-05-12T14:30:00Z').getTime() / 1000`.
Les timestamps epoch sont-ils affectés par les changements d'heure ?
Non. Les timestamps Unix sont toujours en UTC, indépendamment du fuseau horaire ou des règles d'heure d'été. Un timestamp epoch représente toujours le même instant universel. C'est précisément pour cette raison qu'ils sont utilisés dans les systèmes distribués : deux serveurs dans des fuseaux différents verront toujours le même timestamp pour le même événement.