Développement API d’une application pour sécuriser et simplifier la distribution de licences de jeu
Dans le cadre de la collaboration exclusive entre Lexip et Ubisoft, nous avons eu l’opportunité de concevoir et développer une API pour offrir aux utilisateurs un moyen simple et sécurisé d’accéder aux licences de jeux et DLC via des coupons délivrés Lexip.
Les coupons sont générés pour les produits Lexip inspirés de la franchise Assassin’s Creed® Shadows, une gamme d’accessoires exclusifs alliant technologie et design premium. Les utilisateurs, en fonction de leurs achats, sont alors récompensés par des licences ou DLC spécifiques.
Notre mission principale était de développer une API robuste et sécurisée, capable de stocker et gérer des informations sensibles tout en permettant une gestion fluide des licences de jeux. Ce système devait suivre un workflow précis où les utilisateurs créent un compte, soumettent un code coupon et une preuve d’achat afin de recevoir leurs licences de jeu.
Workflow de l’application implémenté lors du développement API
Le développement API réalisé pour Lexip a été pensé pour automatiser le processus de validation et de distribution des licences de manière sécurisée, le workflow de l’API se déroule en plusieurs étapes :
- Saisie de l’email utilisateur : l’utilisateur commence par saisir son adresse email. L’API génère alors un token unique et l’envoie à l’utilisateur pour vérifier la validité de son adresse. Cette étape garantit que seules les adresses valides peuvent continuer le processus.
- Validation de l’email via le token : une fois le token reçu, l’utilisateur le soumet à l’API pour confirmer son email. Cette validation sécurisée permet d’éviter les fraudes et d’assurer l’intégrité des données.
- Soumission de la preuve d’achat et saisie du code coupon : l’utilisateur doit ensuite fournir une preuve d’achat pour le produit Lexip, l’API reçoit ces fichiers et les stocke de manière sécurisée dans un bucket S3 multi-zones. L’API vérifie la validité du code reçu lors de l’achat et le lie à l’utilisateur pour autoriser la récupération de la licence.
- Récupération de la licence : après validation de tous les éléments (email, preuve d’achat et code coupon), l’API permet à l’utilisateur de récupérer sa licence de jeu.
Cette application centrée sur le développement d’une API assure non seulement la sécurité et la fiabilité du processus, mais permet également une intégration future simple avec d’autres sites pour différentes opérations commerciales.
Couche d’abstraction et intégration de l’API d’Ubisoft
Dans le cadre du projet Lexip, le développement a été renforcé par l’intégration d’une couche d’abstraction dédiée à la gestion de la livraison des licences via l’API Ubisoft. Cette architecture permet de simplifier les échanges entre notre système et les services externes tout en anticipant l’intégration de nouveaux fournisseurs. Grâce à cette couche, l’utilisateur peut :
- Se connecter à son espace Ubisoft via une authentification OAuth sécurisée, sans avoir besoin de partager ses identifiants directement avec le système Lexip.
- Activer automatiquement sa licence de jeu en lien avec son compte Ubisoft, en utilisant les endpoints de l’API Ubisoft.
- Bénéficier d’un processus transparent et sécurisé, où l’API gère toutes les validations et les interactions avec les serveurs Ubisoft en arrière-plan.
Cette abstraction permet de découpler la logique métier interne de Lexip des contraintes techniques de l’API Ubisoft. Cette approche démontre comment le développement API peut être utilisé pour orchestrer des services externes complexes tout en offrant une expérience utilisateur simple et sécurisée.
Pour répondre aux exigences techniques et fonctionnelles du projet, nous avons utilisé une architecture moderne et évolutive :
- Symfony et API Platform ont été utilisés pour développer une API performante, capable de gérer les inscriptions des utilisateurs, la soumission des codes coupons et la délivrance automatique des licences.
- Un site statique intégré par Lexip communique directement avec l’API afin de fournir une interface utilisateur fluide et intuitive.
- Pour la gestion des données et le suivi des licences, nous avons développé un backoffice sous Next.js et ReactAdmin, permettant à l’équipe de consulter toutes les informations récoltées, ainsi que d’importer en masse des coupons ou licences tout en associant des spécifications pour contextualiser les informations.
Nous avons mis un accent particulier sur la sécurité des données en appliquant les meilleures pratiques du secteur pour protéger les informations sensibles des utilisateurs. Grâce à l’architecture API-first, le système est conçu pour être flexible et facilement évolutif, permettant ainsi une future intégration de nouvelles fonctionnalités ou des ajustements selon les besoins.