Fake Editor App - Démonstration d'Intégration Passe Marché
Cette application Sinatra démontre comment intégrer une plateforme de marchés publics avec l'API OAuth2 de Passe Marché.
🎯 Objectif
Fournir un exemple concret d'intégration OAuth2 avec Passe Marché, incluant :
Authentification via Client Credentials flow
Stockage et gestion des tokens
Interface utilisateur pour visualiser les tokens
Mécanisme de rafraîchissement des tokens
🛠 Technologies
Sinatra : Framework web léger
SQLite : Base de données locale pour le stockage des tokens
Sequel : ORM pour la gestion de la base de données
HTTParty : Client HTTP pour les appels API
dotenv : Gestion des variables d'environnement
📋 Prérequis
Ruby 3.4.5
Passe Marché en cours d'exécution sur http://localhost:3000
Éditeur demo configuré dans Passe Marché
🚀 Installation
1. Installer les dépendances
2. Configurer les variables d'environnement
Éditez le fichier .env avec vos paramètres :
3. Configurer l'éditeur demo dans Passe Marché
Dans la console Rails de Passe Marché :
Note: Les URLs de webhook et redirection sont configurées pour pointer vers l'application fake editor sur le port 4567.
🎮 Utilisation
1. Démarrer l'application
2. Accéder à l'interface
Ouvrez votre navigateur à : http://localhost:4567
3. Tester l'intégration complète
Cliquez sur "S'authentifier" pour obtenir un token OAuth2
Le token sera affiché avec ses détails (type, scope, expiration)
Créez un marché public avec le formulaire
Cliquez sur l'URL de configuration pour accéder à Passe Marché
Complétez la configuration du marché dans Passe Marché
À la fin, le marché sera marqué comme "Terminé" via webhook
Utilisez "Rafraîchir le Token" si nécessaire
Utilisez "Effacer les Tokens" pour nettoyer la base de données
🏗 Structure du Projet
🔧 Fonctionnalités
Authentification OAuth2
Client Credentials flow
Gestion automatique des tokens
Stockage sécurisé en base SQLite
Création de marchés publics
Formulaire de création avec validation
Intégration avec l'API Passe Marché
Stockage local des marchés créés
Réception de webhooks
Endpoint
/webhooks/voie-rapidepour les notificationsTraitement automatique des événements de completion
Mise à jour du statut des marchés en temps réel
Interface utilisateur
Dashboard avec statut d'authentification
Affichage des détails du token
Liste des marchés publics avec leur statut
Boutons pour authentification/rafraîchissement
Countdown en temps réel pour l'expiration
Stockage des données
Base de données SQLite locale
Modèle Token avec validation d'expiration
Modèle Market pour les marchés publics
Nettoyage automatique des anciens tokens
🛡 Sécurité
Variables d'environnement pour les secrets
Tokens stockés localement uniquement
Validation d'expiration des tokens
Interface sécurisée sans exposition des secrets
🐛 Dépannage
Erreur d'authentification
Vérifiez que Passe Marché est lancé
Vérifiez les variables d'environnement
Assurez-vous que l'éditeur demo est créé et autorisé
Erreur de base de données
Le fichier SQLite sera créé automatiquement
Supprimez
fake_editor.dbpour réinitialiser
Erreur de port
Changez le port dans
.envsi 4567 est occupéUtilisez
bundle exec rackup -p AUTRE_PORT
📚 Documentation
Cette application sert d'exemple pour :
Implémentation OAuth2 Client Credentials
Gestion des tokens et erreurs
Interface utilisateur pour l'authentification
🤝 Contribution
Cette application est un exemple de démonstration. Pour des améliorations :
Créez une branche feature
Testez vos modifications
Assurez-vous que l'intégration fonctionne
Créez une pull request
Application de démonstration pour l'intégration OAuth2 avec Passe Marché
Mis à jour
Ce contenu vous a-t-il été utile ?

