Ce document liste tous les fichiers et configurations installés automatiquement lors de l'exécution de composer require betterauth/symfony-bundle, sans aucune intervention manuelle.
Lors de l'installation, Symfony Flex copie automatiquement les fichiers suivants depuis recipes/1.0/config/ :
config/packages/better_auth.yamlConfiguration complète du bundle avec toutes les options documentées :
better_auth:
mode: 'api'
secret: '%env(BETTER_AUTH_SECRET)%'
session: { ... }
token: { ... }
oauth: { ... }
multi_tenant: { ... }
two_factor: { ... }
security:
auto_configure: true
firewall_name: 'api'
firewall_pattern: '^/api'
public_routes_pattern: '^/auth'
cors:
auto_configure: true
routing:
auto_configure: true
custom_controllers_namespace: 'App\Controller\Api'
openapi:
enabled: true
path_prefix: ~ # Auto-détection depuis routes
config/packages/security.yamlConfiguration Symfony Security complète avec :
BetterAuthUserProvider configurédev : Routes de développement (profiler, etc.)auth : Routes publiques d'authentification (^/auth)api : Routes API protégées (^/api)main : Firewall principal (lazy)Deux variables sont ajoutées automatiquement dans .env :
BETTER_AUTH_SECRET=generate-secret-key-here-64-chars
BETTER_AUTH_ISSUER=http://localhost:8000
⚠️ Important : Vous devez générer un secret sécurisé et mettre à jour
BETTER_AUTH_SECRET:php -r "echo bin2hex(random_bytes(32)) . PHP_EOL;"
BetterAuthExtensionLe bundle configure automatiquement plusieurs composants Symfony via prependExtensionConfig() :
security.auto_configure: true - DÉFAUT)Configuration automatique de security.yaml :
better_auth_provider avec BetterAuthUserProviderbetter_auth_public : Routes publiques d'authentificationapi : Routes API protégées (ou version spécifique si /api/v1/auth)/auth/(register|login|refresh|...)/auth/* et /api/*/api/v1/auth → firewall api_v1)nelmio/cors-bundle installé ET cors.auto_configure: true - DÉFAUT)Configuration automatique de nelmio_cors.yaml :
^/auth)^/api)routing.auto_configure: true - DÉFAUT)Configuration automatique de routes.yaml :
App\Controller\Apisecurity.public_routes_patternExemple : Si public_routes_pattern: '^/api/v1/auth', le préfixe /api/v1 est automatiquement ajouté aux controllers dans App\Controller\Api.
api-platform installé ET openapi.enabled: true - DÉFAUT)Documentation automatique des endpoints d'authentification :
POST /auth/registerPOST /auth/loginGET /auth/mePOST /auth/refreshPOST /auth/logoutPOST /auth/revoke-allGET /auth/oauth/{provider}GET /auth/oauth/{provider}/callbackTous les services BetterAuth sont automatiquement configurés via config/services.yaml du bundle :
BetterAuth\Core\PasswordHasherBetterAuth\Core\TokenServiceBetterAuth\Core\Config\AuthConfigBetterAuth\Core\Plugin\PluginManagerBetterAuth\Symfony\Plugin\SymfonyPluginLoaderBetterAuth\Core\SessionServiceBetterAuth\Core\SessionAuthManagerBetterAuth\Core\TokenAuthManagerBetterAuth\Core\HybridAuthManagerBetterAuth\Symfony\Security\BetterAuthUserProviderBetterAuth\Symfony\Security\BetterAuthAuthenticatorBetterAuth\Symfony\OpenApi\AuthenticationDecoratorEntityAutoConfigurationPass)Le bundle détecte automatiquement les entités App\Entity\* et configure les repositories pour les utiliser :
| Repository | Entité détectée |
|---|---|
DoctrineUserRepository |
App\Entity\User |
DoctrineSessionRepository |
App\Entity\Session |
DoctrineRefreshTokenRepository |
App\Entity\RefreshToken |
DoctrineMagicLinkRepository |
App\Entity\MagicLinkToken |
DoctrineEmailVerificationRepository |
App\Entity\EmailVerificationToken |
DoctrinePasswordResetRepository |
App\Entity\PasswordResetToken |
DoctrineTotpRepository |
App\Entity\TotpData |
Aucune configuration manuelle dans services.yaml n'est nécessaire !
Si les classes App\Entity\* existent (générées par better-auth:install), le bundle les utilise automatiquement. Sinon, il utilise les classes par défaut du bundle.
Le bundle BetterAuth\Symfony\BetterAuthBundle est automatiquement enregistré dans config/bundles.php.
better_auth.yaml, security.yaml).env)nelmio/cors-bundle présent)api-platform présent)bundles.phpCes étapes nécessitent l'exécution de php bin/console better-auth:install :
❌ Entités (src/Entity/) :
User.php - Entité utilisateurSession.php - Gestion des sessionsRefreshToken.php - Tokens de rafraîchissementMagicLinkToken.php - Liens magiques (passwordless)EmailVerificationToken.php - Vérification emailPasswordResetToken.php - Réinitialisation mot de passeTotpData.php - Données 2FA/TOTPGuestSession.php - Sessions invité (optionnel)❌ Controllers (src/Controller/Api/) :
Core Controllers (installés par better-auth:install) :
Trait/ApiResponseTrait.php - Trait pour réponses API uniformesAuthController.php - Endpoints auth + 2FA (11 endpoints)PasswordController.php - Endpoints mot de passe (3 endpoints)SessionsController.php - Endpoints sessions (2 endpoints)Optional Controllers (via better-auth:add-controller) :
OAuthController.php - OAuth providers (3 endpoints)EmailVerificationController.php - Vérification email (4 endpoints)MagicLinkController.php - Authentification passwordless (3 endpoints)GuestSessionController.php - Sessions invité (4 endpoints)AccountLinkController.php - Liaison comptes tiers (4 endpoints)DeviceController.php - Gestion appareils (6 endpoints)❌ Migrations :
❌ Configuration manuelle de security.yaml (si auto_configure: false)
Générer un secret sécurisé :
php -r "echo bin2hex(random_bytes(32)) . PHP_EOL;"
Mettre à jour BETTER_AUTH_SECRET dans .env avec le secret généré
(Optionnel) Lancer better-auth:install pour générer les entités :
php bin/console better-auth:install
(Optionnel) Ajouter des controllers supplémentaires :
# Lister les controllers disponibles
php bin/console better-auth:add-controller --list
# Ajouter un controller spécifique
php bin/console better-auth:add-controller oauth
# Ajouter tous les controllers
php bin/console better-auth:add-controller --all
How can I help you explore Laravel packages today?