Regex pour JSON Web Token (JWT)

Utilisez /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/ pour vérifier qu'une chaîne entière est un JSON Web Token (JWT) valide. Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les échantillons déjà chargés.

Mis à jour le

/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/
Ouvrir dans le testeur de regex
SaisieRésultat
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig_abc-123✓ Correspondance
eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0.✓ Correspondance
abc.def✗ Aucune correspondance
a b.c.d✗ Aucune correspondance
eyJ.abc.def.ghi✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
[A-Za-z0-9_-]+L'en-tête, encodé en base64url
\.Un point
[A-Za-z0-9_-]+La charge utile (payload)
[A-Za-z0-9_-]*$La signature (vide pour les jetons non signés)

Exemples de code

JavaScript

const re = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*', value))

PHP

preg_match('/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/', $value) === 1;

Remarques et limites

Vérifier la forme ne dit rien de la validité d'un jeton : vérifiez toujours la signature côté serveur. Inspectez un jeton avec le JWT Decoder.

Questions fréquentes

Quelle est la regex pour JSON Web Token (JWT) ?
/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig_abc-123, eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0.. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances s'affichent en surbrillance pendant que vous modifiez.