WindevExpert

Vidéo 22 • Autorisation & Permissions

Le Pouvoir des
RĂ´les

Découvrez comment utiliser les "Claims" du JWT pour transformer dynamiquement votre application WinDev en fonction de l'utilisateur.

Deux concepts, une sécurité

Authentification (Login)

Le serveur répond à la question : "Qui êtes-vous ?".
Il vérifie votre login/mot de passe et vous donne votre badge JWT.

Autorisation (Permissions)

L'application répond à la question : "Que pouvez-vous faire ?".
Elle lit les droits inscrits dans votre badge pour ouvrir ou fermer les portes.

Laboratoire : Droits Dynamiques

Choisir un profil

Vendeur (Standard) role: "USER"
Patron (Administrateur) role: "ADMIN"
Aperçu Menu Principal
Nouvelle Vente
Tableau de Marge
Consulter Stock
Effacer Historique
Verification JWT: [role=USER] -> Menu filtré.

Le contenu du porte-clés

Qu'est-ce qu'une "Claim" ?

C'est une affirmation que le serveur signe. "J'affirme que cet utilisateur est Administrateur".

Puisque le jeton est signé, l'application WinDev peut croire cette information sans redemander au serveur.

Règle d'or :

Ne mettez pas de données sensibles, seulement des identifiants et des rôles.

// Payload Décrypté
{
  "sub": "jean_dev",
  "role": "ADMIN",
  "perms": ["READ", "WRITE"],
  "exp": 1738800000
}

Le Code de l'Expert UI

// Dans le code d'initialisation de votre fenĂŞtre
PROCÉDURE AppliquerSecuriteUI()

// 1. On récupère le rôle stocké dans notre objet cSession (issu du JWT)
sMonRole est une chaîne = pclMaSession.GetRole()

// 2. On verrouille les boutons stratégiques par défaut
BTN_StatsMarge..État = Grisé
BTN_PurgeData..État = HorsÉcran

// 3. On déverrouille seulement si le badge est "ADMIN"
SI sMonRole = "ADMIN" ALORS
    BTN_StatsMarge..État = Actif
    BTN_PurgeData..État = Actif
FIN