Clés publiques
Les tokens Unclaim sont signés en Ed25519. Tes sites les vérifient avec la clé publique ci-dessous, sans jamais avoir besoin d'un secret de signature — et sans rappeler la passerelle à chaque page.
Clés publiées
Comment s'en servir
Avec le SDK Node
RecommandéLe SDK récupère et met en cache le jeu de clés tout seul, et recharge automatiquement si la passerelle a changé de clé.
const payload = await unclaim.verifyLocally(token); // payload.sub -> uncl_7F3K9QW2MXB4YVNP8RTJ5CHD6A // payload.user -> profil Discord // payload.aud -> ton client_id, vérifié // payload.exp -> expiration, vérifiée
Dans un autre langage
JWT EdDSAN'importe quelle bibliothèque JWT acceptant EdDSA convient. Trois règles à ne pas contourner :
- Impose l'algorithme
EdDSAà la vérification — n'accepte jamais celui annoncé dans le token. - Choisis la clé par son
kid, pris dans l'en-tête du token. - Vérifie
aud: il doit valoir ton propreclient_id.
# Python, avec PyJWT
import jwt
from jwt import PyJWKClient
jwks = PyJWKClient("…")
key = jwks.get_signing_key_from_jwt(token).key
payload = jwt.decode(
token,
key,
algorithms=["EdDSA"], # imposé, jamais lu depuis le token
audience="mon-site", # ton client_id
)
Rotation
L'administrateur peut changer la clé de signature à tout moment. Les
tokens déjà émis restent valides jusqu'à leur expiration : l'ancienne clé
publique reste publiée le temps nécessaire. Mets simplement le jeu de
clés en cache avec une durée raisonnable — une heure — et recharge-le
quand un kid inconnu se présente.