Mini-jeuxÉtude de cas — écosystème abrt
Mes projetsMini-jeux — casino virtuel
Plateforme de jeux avec comptes joueurs branchés sur le SSO de l'écosystème
Ouvrir le site Me contacter
Le contexte
Un casino virtuel rassemblant plusieurs mini-jeux et une cagnotte fictive. À l'origine 100% HTML/CSS/JavaScript avec un flux invité, le projet a ensuite gagné un système de comptes joueurs optionnel branché sur le SSO de l'écosystème, pour persister la cagnotte côté serveur.
Comment c'est fait
- Jeux développés en JavaScript pur
- Flux invité conservé (prénom → cagnotte en localStorage)
- Compte optionnel branché sur le SSO existant (cookie partagé, comptes taggés « minijeux »)
- API PHP (inscription, connexion, chargement/sauvegarde) avec mots de passe hachés (bcrypt) et requêtes préparées (PDO)
- Synchronisation serveur de la cagnotte, avec migration de la cagnotte invité à la connexion
- Comptes joueurs identifiés par une origine « minijeux » et administrables dans la gestion des utilisateurs via un filtre
Difficultés rencontrées et solutions
- Ajouter des comptes sans toucher aux jeux. Les jeux passent tous par un objet
GameState: c'est lui qui a été rendu compatible avec le SSO (promesseready, synchronisation serveur différée), sans modifier les fichiers des jeux. Un bug en est ressorti : un lien direct redirigeait avant que l'état du compte soit chargé ; il attend désormaisGameState.ready. - Une déconnexion partagée. Se déconnecter détruit la session SSO commune : le joueur est aussi déconnecté des autres sites. C'est le comportement attendu d'un compte unique, mais il fallait le savoir et le documenter.
- Des comptes publics à encadrer. L'inscription est publique : elle est limitée côté serveur, les mots de passe sont hachés et les requêtes préparées. Les comptes joueurs ont une origine « minijeux » ; ils ne sont plus cachés de l'administration, un filtre permet de les consulter et de les supprimer (droit à l'effacement).
- Un pied de page légal invisible. Placé dans la barre de navigation fixe du bas, le bloc des mentions légales se retrouvait à largeur nulle. Il a été sorti dans son propre conteneur avec
width:100%, le<body>étant en flex colonne. - Des styles en ligne à la chaîne. 46 attributs
style=ont été retirés ; ceux qui portaient l'angle de chaque case de la roulette passent par un attributdata-irecopié en variable CSS par quelques lignes de JavaScript.
Compétences BTS SIO mobilisées
Ce projet s'inscrit dans plusieurs compétences du référentiel BTS SIO, option SISR :
- Bloc 1 Mettre à disposition des utilisateurs un service informatique
- Bloc 3 Gérer les identités et les habilitations
- Bloc 3 Protéger les données à caractère personnel (mots de passe hachés)
- Transverse Travailler en mode projet
Pour aller plus loin
Voir aussi
D'autres études de cas de l'écosystème, proches de celle-ci :