Download the PHP package yowedjamal/bjpass-backend-sdk without Composer
On this page you can find all versions of the php package yowedjamal/bjpass-backend-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yowedjamal/bjpass-backend-sdk
More information about yowedjamal/bjpass-backend-sdk
Files in yowedjamal/bjpass-backend-sdk
Package bjpass-backend-sdk
Short Description Backend SDK PHP pour BjPass - gestion OAuth2/OIDC (exchange, introspect, jwks, validation) avec intégration Laravel
License MIT
Informations about the package bjpass-backend-sdk
BjPass Backend SDK - Package Laravel
Un package Laravel complet pour l'authentification OAuth2/OIDC avec BjPass, fournissant une intégration clé en main pour votre application backend.
🚀 Installation
1. Installation via Composer
2. Publication de la configuration
3. Configuration des variables d'environnement
Ajoutez ces variables dans votre fichier .env :
4. Publication des routes (optionnel)
📋 Configuration
Le package est configuré via le fichier config/bjpass.php. Voici les principales options :
Configuration OIDC
base_url: URL de base du provider OIDCauth_server: Serveur d'authentification à utiliserclient_id: Identifiant client OAuth2client_secret: Secret client OAuth2redirect_uri: URI de redirection après authentificationscope: Scopes OAuth2 demandés
Configuration de sécurité
jwks_cache_ttl: Durée de vie du cache JWKS (en secondes)auth_session_max_age: Durée maximale de la session d'authentificationmax_token_age: Âge maximal des tokens acceptésrevoke_tokens_on_logout: Révoquer les tokens lors de la déconnexion
Configuration des cookies
use_secure_cookies: Utiliser des cookies sécuriséssession_cookie_name: Nom du cookie de sessionsession_cookie_lifetime: Durée de vie du cookie de session
🔧 Utilisation
Utilisation basique avec la façade
Utilisation avec injection de dépendances
Middleware d'authentification
Protégez vos routes avec le middleware BjPass :
🌐 Endpoints HTTP intégrés
Le package fournit automatiquement ces endpoints :
Authentification
GET /auth/start- Démarrer le flux d'authentificationGET /auth/callback- Gérer le retour du provider OIDCGET /auth/error- Page d'erreur d'authentification
API
GET /auth/api/status- Vérifier le statut d'authentificationGET /auth/api/user- Obtenir les informations utilisateurPOST /auth/api/logout- DéconnexionPOST /auth/api/refresh- Rafraîchir le token d'accèsPOST /auth/api/introspect- Introspecter un token
Routes protégées
GET /auth/protected/dashboard- Exemple de route protégée
🔐 Sécurité
Gestion des sessions
- Stockage sécurisé des tokens en session Laravel
- Cookies HTTPOnly optionnels pour une sécurité renforcée
- Rotation automatique des refresh tokens
Validation des tokens
- Validation cryptographique des signatures JWT via JWKS
- Vérification des claims OIDC (aud, iss, exp, iat, nonce)
- Cache intelligent des clés publiques JWKS
Protection CSRF
- Validation automatique du paramètre
state - Vérification de l'origine des requêtes
- Protection contre les attaques de rejeu
🔄 Intégration avec le SDK Frontend
Configuration du frontend
Flux d'authentification
- Démarrage : Le frontend ouvre
/auth/startdans une popup - Redirection : L'utilisateur est redirigé vers le provider OIDC
- Callback : Le provider redirige vers
/auth/callback - Communication : La page de callback communique avec le frontend via
postMessage - Vérification : Le frontend vérifie le statut via
/auth/api/status
🧪 Tests
Exécution des tests
Tests avec couverture
Analyse statique
📚 API Reference
Méthodes principales
createAuthorizationUrl(array $params = [])
Crée une URL d'autorisation OAuth2 avec PKCE.
Paramètres :
state: Paramètre state personnalisé (optionnel)nonce: Paramètre nonce personnalisé (optionnel)
Retour :
exchangeCode(string $code, string $state)
Échange un code d'autorisation contre des tokens.
Retour :
validateIdToken(string $idToken, ?string $expectedNonce = null)
Valide un ID token JWT.
isAuthenticated()
Vérifie si l'utilisateur est authentifié.
getUserInfo()
Récupère les informations de l'utilisateur connecté.
logout()
Déconnecte l'utilisateur et révoque les tokens.
Services disponibles
getAuthService()
Retourne l'instance du service d'authentification.
getTokenService()
Retourne l'instance du service de validation des tokens.
getJwksService()
Retourne l'instance du service de gestion des JWKS.
🚨 Gestion des erreurs
Exceptions personnalisées
Codes d'erreur
invalid_token: Token invalide ou expiréinvalid_state: Paramètre state invalideauthentication_failed: Échec de l'authentificationsession_expired: Session expiréeinsufficient_permissions: Permissions insuffisantes
🔧 Personnalisation
Configuration avancée
Middleware personnalisé
📦 Structure du package
🤝 Contribution
- Fork le projet
- Créez une branche pour votre fonctionnalité
- Committez vos changements
- Poussez vers la branche
- Ouvrez une Pull Request
📄 Licence
Ce package est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
🆘 Support
Pour toute question ou problème :
- Ouvrez une issue sur GitHub
- Consultez la documentation
- Contactez l'équipe de développement
Développé avec ❤️ par l'équipe BjPass
All versions of bjpass-backend-sdk with dependencies
laravel/framework Version ^9.0|^10.0|^11.0|^12.0
guzzlehttp/guzzle Version ^7.0
firebase/php-jwt Version ^6.0
lcobucci/jwt Version ^4.0
ramsey/uuid Version ^4.0