manous / l5-swagger-auth
Package d'authentification pour l5-swagger avec système de login sécurisé
Requires
- php: ^8.2
- darkaonline/l5-swagger: ^9.0|^10.0|^11.0
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- orchestra/testbench: ^10.0
- orchestra/workbench: ^10.0
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Protège la documentation L5-Swagger avec une authentification indépendante (username + password).
Sans Sanctum, Passport, Spatie Permission ni table utilisateurs.
Compatibilité
| PHP | ^8.2 |
| Laravel | 11, 12, 13* |
| L5-Swagger | ^9 || ^10 || ^11 |
* Laravel 13 nécessite darkaonline/l5-swagger ^11.
Prérequis
darkaonline/l5-swagger installé et configuré.
Installation
composer require manous/l5-swagger-auth
Ajoutez dans .env :
SWAGGER_USERNAME=admin SWAGGER_PASSWORD=change-me
C’est suffisant pour protéger /api/documentation et /docs, et activer /swagger/login.
Optionnel — configuration publiée
php artisan vendor:publish --tag=manous-swagger-auth-config
Crée config/swagger-auth.php pour personnaliser routes, redirection, session, etc.
Les versions antérieures publiaient
config/manous-swagger-auth.php(fichier ignoré). Renommez-le enswagger-auth.phpou republiez.
Optionnel — bouton Déconnexion dans Swagger UI
php artisan vendor:publish --tag=manous-swagger-auth-override-view --force
Sans cette commande, l’auth fonctionne ; le bouton logout n’apparaît pas dans Swagger UI.
Utilisation
| URL | Description |
|---|---|
/swagger/login |
Formulaire de connexion |
/api/documentation |
Swagger UI (protégé) |
/docs |
Spécification OpenAPI (protégée) |
Un utilisateur non authentifié est redirigé vers le login. Les assets Swagger (CSS/JS) restent publics.
Sécurité
- Credentials uniquement via
.env - Session indépendante de l’auth applicative
- CSRF sur login / logout
- Pas de rate limiting intégré : à gérer côté infra / app si besoin
Licence
MIT