Download the PHP package latinexus/lx_auth without Composer
On this page you can find all versions of the php package latinexus/lx_auth. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download latinexus/lx_auth
More information about latinexus/lx_auth
Files in latinexus/lx_auth
Package lx_auth
Short Description Sistema de autenticación multi-tenancy con roles y permisos para PHP
License MIT
Informations about the package lx_auth
LxAuth - Sistema de Autenticación y Autorización
Librería PHP para autenticación, roles y permisos. Trabaja contra una única base de datos por instancia. Ideal para arquitecturas SaaS donde cada cliente (tenant) tiene su propia base de datos.
Nota: La resolución del tenant (cliente) y sus credenciales de conexión son responsabilidad de la aplicación que consume LX_AUTH. LX_AUTH recibe una conexión ya configurada y opera exclusivamente contra ella.
🚀 Características
- ✅ Roles Jerárquicos: Sistema de roles con herencia de permisos
- ✅ Permisos Flexibles: Soporte para wildcards (
users.*,admin:access) - ✅ Autenticación JWT: Tokens seguros para APIs
- ✅ Middleware PSR-15: Protección de rutas estándar
- ✅ Throttling: Protección contra fuerza bruta
- ✅ Caching: Mejora de rendimiento para roles y permisos
- ✅ Sesiones PHP: Gestión nativa de sesiones con "remember me"
- ✅ Drivers Extensibles: Soporte para múltiples bases de datos
- ✅ Contratos e Interfaces: Testing fácil y flexibilidad
📋 Requisitos
- PHP >= 8.3
- Extensiones: ext-json, ext-openssl, ext-pdo
- Composer
🛠️ Instalación
🗄️ Esquema de Base de Datos
Cada base de datos donde opere LX_AUTH debe tener las siguientes tablas:
| Tabla | Descripción |
|---|---|
users |
Usuarios del sistema |
roles |
Roles jerárquicos |
permissions |
Permisos con wildcards |
role_user |
Relación usuarios-roles |
permission_role |
Relación roles-permisos |
permission_user |
Permisos directos a usuarios |
persistences |
Sesiones persistentes |
Migraciones
🔧 Configuración Básica
📚 Uso Básico
Autenticación
Roles y Permisos
Middleware PSR-15
$tenantId = $auth->getTenantResolver()->resolve(); bash
Tests básicos (SQLite en memoria)
php test_simple.php # Test básico del modelo php test_final.php # Test de compatibilidad completa php test_migrations.php # Test de migraciones con datos
Tests específicos para MySQL/MariaDB
php test_mysql.php # Test completo con MySQL/MariaDB
Migraciones
php migrate.php # Migraciones SQLite (desarrollo) php migrate_mysql.php # Migraciones MySQL/MariaDB (producción)
src/ ├── LxAuth.php # Clase principal ├── Models/ # Modelos Eloquent │ ├── User.php │ ├── Role.php │ ├── Permission.php │ └── Tenant.php ├── Services/ # Servicios del sistema │ ├── AuthManager.php │ ├── RoleManager.php │ ├── PermissionManager.php │ └── TenantResolver.php ├── Middleware/ # Middleware PSR-15 ├── Drivers/ # Drivers de base de datos └── Contracts/ # Interfaces y contratos
config/ └── lx_auth.php # Configuración
database/ └── migrations/ # Migraciones de base de datos
tests/ # Tests unitarios bash php -r "echo bin2hex(random_bytes(32));"
- Sugerencia de despliegue/rotación:
- Considera soportar temporalmente una clave secundaria (`jwt.secret_secondary`) para permitir una rotación segura sin invalidar sesiones inmediatamente; valida primero con la primaria y, si falla, intenta la secundaria.
- Registra y renueva tokens firmados con la clave secundaria durante el período de transición.
- Validaciones añadidas en LxAuth:
- `AuthManager` ahora valida la longitud del secret antes de llamar a la librería y sincroniza `JWT::$leeway` desde la configuración (`tokens.jwt.leeway`). Si el secret es insuficiente, se lanzará una excepción con mensaje claro.
---
## 📄 Licencia
MIT License - Ver archivo LICENSE para detalles.
## 🤝 Contribuciones
¡Contribuciones son bienvenidas! Por favor sigue los estándares de código y testing.
---
**LxAuth** - Autenticación robusta y flexible para aplicaciones PHP modernas.All versions of lx_auth with dependencies
ext-json Version *
ext-openssl Version *
ext-pdo Version *
ext-ctype Version *
firebase/php-jwt Version 7.0.*
illuminate/database Version v13.18.*
psr/container Version ^2.0
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
psr/simple-cache Version ^3.0