bmvc/bauth
最新稳定版本:v1.1.0
Composer 安装命令:
composer require bmvc/bauth
包简介
A complete, framework-agnostic PHP authentication library
README 文档
README
Une librairie PHP moderne, modulaire et framework-agnostique pour gérer l’authentification, l’autorisation, les sessions, les tokens JWT et la sécurité des utilisateurs dans n’importe quel projet PHP.
🚀 Fonctionnalités
- ✅ Authentification complète
- ✅ JWT (JSON Web Token)
- ✅ Sessions sécurisées
- ✅ Rôles & permissions
- ✅ Support 2FA / TOTP
- ✅ OAuth2 (Google, GitHub, Facebook, Microsoft)
- ✅ Connexion Sociale
- ✅ Clés API pour applications tierces
- ✅ Sessions Multiples par utilisateur
- ✅ WebAuthn / Passkeys (authentification sans mot de passe)
- ✅ Compatible Laravel, Symfony et PHP natif
- ✅ Architecture PSR-4
- ✅ Framework-agnostique
- ✅ Extensible via interfaces et providers
- ✅ Sécurité moderne intégrée
📦 Installation
Installer avec Composer :
composer require bmvc/bauth
⚡ Démarrage rapide
Configuration
<?php use Bmvc\BAuth\Config; use Bmvc\BAuth\Auth; $config = new Config([ 'jwt' => [ 'secret' => env('AUTH_JWT_SECRET'), 'expiresIn' => 3600, ], 'password' => [ 'algorithm' => PASSWORD_BCRYPT, 'options' => [ 'cost' => 12, ], ], ]); $auth = new Auth($config);
🔌 Fournisseurs d’authentification
BAuth utilise des providers pour communiquer avec votre système utilisateur.
Les providers permettent d’intégrer facilement BAuth avec :
- PHP natif
- Laravel
- Symfony
- ou n’importe quel framework PHP
PHP natif / projet générique
<?php use Bmvc\BAuth\Adapters\Generic\GenericAuthProvider; $provider = new GenericAuthProvider($config); $provider ->setGetUserByEmailCallback(function ($email) { return User::where('email', $email)->first(); }) ->setGetUserByIdCallback(function ($id) { return User::find($id); }) ->setCreateUserCallback(function ($data) { return User::create($data); }); $auth->setAuthProvider($provider);
Laravel
<?php use Bmvc\BAuth\Adapters\Laravel\LaravelAuthProvider; $provider = new LaravelAuthProvider( $config, 'users' ); $auth->setAuthProvider($provider);
Symfony
<?php use Bmvc\BAuth\Adapters\Symfony\SymfonyAuthProvider; $provider = new SymfonyAuthProvider( $config, $entityManager, App\Entity\User::class ); $auth->setAuthProvider($provider);
🔐 Authentification
Connexion utilisateur
<?php try { $result = $auth->login( 'user@example.com', 'password123' ); $user = $result['user']; $token = $result['token']; } catch (\Bmvc\BAuth\Exceptions\AuthenticationException $e) { echo $e->getMessage(); }
Vérifier l’utilisateur connecté
<?php if ($auth->isAuthenticated()) { $user = $auth->user(); echo $user['email']; }
Déconnexion
<?php $auth->logout();
🔑 JWT
Obtenir le token actuel
<?php $token = $auth->token();
Vérifier un token
<?php try { $payload = $auth->verifyToken($token); } catch (\Bmvc\BAuth\Exceptions\InvalidTokenException $e) { echo "Token invalide"; }
Rafraîchir un token
<?php $newToken = $auth->refreshToken();
🛡️ Autorisation
BAuth supporte les rôles et permissions via un provider dédié.
Vérifier une permission
<?php if ($auth->can('posts.edit')) { echo "Autorisé"; }
Vérifier un rôle
<?php if ($auth->hasRole('admin')) { echo "Administrateur"; }
Autoriser une action
<?php $auth->authorize('users.delete');
🔒 Authentification à deux facteurs (2FA)
BAuth supporte le TOTP pour renforcer la sécurité des comptes utilisateurs.
<?php if ($auth->verify2FA($code)) { echo "Code valide"; }
🧩 Architecture
src/
├── Auth.php
├── Config.php
│
├── Contracts/
│ ├── AuthProviderInterface.php
│ ├── AuthorizationProviderInterface.php
│ ├── SessionProviderInterface.php
│ ├── TokenProviderInterface.php
│ └── TwoFactorProviderInterface.php
│
├── Providers/
│ ├── BaseAuthProvider.php
│ ├── BaseAuthorizationProvider.php
│ ├── BaseTwoFactorProvider.php
│ ├── JWTProvider.php
│ └── SessionProvider.php
│
├── Support/
│ └── Password.php
│
├── Adapters/
│ ├── Generic/
│ ├── BMVC/
│ ├── Laravel/
│ ├── PDO/
│ └── Symfony/
│
└── Exceptions/
├── BAuthException.php
├── AuthenticationException.php
├── AuthorizationException.php
├── InvalidTokenException.php
└── UserNotFoundException.php
🔐 Sécurité
BAuth applique plusieurs standards modernes de sécurité :
- bcrypt pour le hashage des mots de passe
- JWT signés avec HMAC SHA-256
- validation stricte des tokens
- support du 2FA TOTP
- protection contre les replay attacks
- architecture PSR-4 sécurisée et extensible
🧪 Tests
Exécuter les tests :
composer test
📚 Documentation
Guides disponibles
- Installation
- Configuration
- Authentication
- Authorization
- JWT
- Sessions
- 2FA
- Middleware
- Laravel
- Symfony
- Custom Providers
- Testing
🛣️ Roadmap
- JWT Authentication
- Roles & Permissions
- 2FA / TOTP
- Session Management
- OAuth2
- Social Login
- API Keys
- Multi-session Management
- WebAuthn / Passkeys
🤝 Contribution
Les contributions sont les bienvenues.
- Fork du projet
- Créer une branche
- Commit des modifications
- Push sur votre fork
- Ouvrir une Pull Request
📄 Licence
MIT License
💡 Vision du projet
BAuth a pour objectif d’offrir :
- la simplicité de Laravel Auth
- la flexibilité de Symfony Security
- l’indépendance d’une librairie standalone
- une architecture moderne, modulaire et extensible
Le tout dans une seule librairie PHP légère, performante et professionnelle.
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-09