Scopes disponibles

Référence complète des scopes de vérification ZYKAY.

Qu'est-ce qu'un scope ?

Un scope définit quelle information d'identité vous souhaitez vérifier. Les scopes sont spécifiés via l'attribut data-scopes du widget et déterminent les attributs retournés dans la réponse de l'API d'échange.

<script src="https://widget-app.zykay.com/v4/loader.min.js"
        data-partner-id="pk_live_xxx"
        data-success-path="/verified"
        data-scopes="isAdult,isFrench,isUnique"></script>

Tableau des scopes

ScopeTypeDescriptionAttribut retourné
isAdultBinaireA 18 ans ou plusage_over_18: true
isFrenchBinaireNationalité françaiseis_french: true
isEUBinaireCitoyen de l'Union européenneis_eu: true
isUniqueNullifierIdentifiant unique par applicationnullifier: "0x..."

Scopes binaires

Les scopes binaires retournent true ou false. Ce sont les plus courants :

  • isAdult — vérifie que l'utilisateur a 18 ans ou plus. Scope par défaut si data-scopes n'est pas spécifié.
  • isFrench — vérifie que la nationalité est française (code ISO 250).
  • isEU — vérifie que la nationalité est celle d'un des 27 États membres de l'Union européenne.

Scope isUnique (résistance Sybil)

Le scope isUnique génère un identifiant cryptographique (nullifier) qui est :

  • Unique par application : deux sites partenaires différents produisent des nullifiers différents pour le même utilisateur
  • Unique par utilisateur : deux utilisateurs différents produisent des nullifiers différents
  • Déterministe : le même utilisateur sur le même site produit toujours le même nullifier

Cela permet de détecter les doublons (attaques Sybil) sans révéler l'identité de l'utilisateur.

Le scope isUnique nécessite un app_id qui est automatiquement dérivé de votre Partner ID. Aucune configuration supplémentaire n'est requise.

Exemples de combinaisons

<!-- Vérification d'âge uniquement (scope par défaut) -->
data-scopes="isAdult"
 
<!-- Âge + nationalité française -->
data-scopes="isAdult,isFrench"
 
<!-- Âge + nationalité + résistance Sybil (recommandé) -->
data-scopes="isAdult,isFrench,isUnique"
 
<!-- Citoyen UE + résistance Sybil -->
data-scopes="isEU,isUnique"

Réponse API selon les scopes

Exemples de réponses POST /v1/exchange pour différentes combinaisons de scopes :

{
  "pass_token": "p_xyz789abc123...",
  "expires_in": 14400,
  "token_type": "Bearer",
  "age_over_18": true,
  "scopes": ["isAdult"],
  "attributes": {
    "age_over_18": true
  }
}

Prochaines étapes