定制 bmvc/bauth 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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.

PHP License Version JWT 2FA OAuth2 WebAuthn

🚀 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.

  1. Fork du projet
  2. Créer une branche
  3. Commit des modifications
  4. Push sur votre fork
  5. 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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固