Vérification des tokens

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.

Voir le JSON brut

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 EdDSA

N'importe quelle bibliothèque JWT acceptant EdDSA convient. Trois règles à ne pas contourner :

# 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.