the-cans-group / cerberus
Flexible auth / token / utils toolkit for Laravel 12
0.0.4
2025-07-08 15:35 UTC
Requires
- php: ^8.3
- illuminate/database: ^12.0
- illuminate/support: ^12.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.0
This package is auto-updated.
Last update: 2025-07-08 15:36:12 UTC
README
A lightweight, extensible multi-device session authentication system for Laravel.
🚀 Installation
composer require the-cans-group/cerberus
1. Register the Service Provider (Laravel 5.x)
// config/app.php 'providers' => [ Cerberus\CerberusProvider::class, ],
For Laravel 5.5+ this is auto-discovered.
⚙️ Configuration
Publish the config file:
php artisan vendor:publish --tag=cerberus-config
Publish the migration:
php artisan migrate
🔐 Guard Setup
Add to config/auth.php
:
'guards' => [ 'cerberus' => [ 'driver' => 'cerberus', 'provider' => null, // Automatically resolved ], ],
🧬 Model Integration
Use the CerberusAuthenticatable
trait in your authenticatable model:
use Cerberus\CerberusAuthenticatable; class User extends Authenticatable { use CerberusAuthenticatable; }
📲 Usage
Create Access Token
$token = $user->createAccessToken();
Check if Token Belongs to the User
$user->tokenBelongsToThisUser($token); // true / false
List Active Sessions
$user->sessions();
Revoke Tokens
$user->revokeToken($token); // Revoke specific token $user->revokeOtherTokens($token); // Revoke all except this one $user->revokeAllTokens(); // Revoke all
🧪 Middleware Usage
Route::middleware('auth:cerberus')->group(function () { Route::get('/me', fn () => auth()->user()); });
⚙️ Commands
Clean up expired sessions:
php artisan cerberus:prune
🧠 Database Structure
cerberus_user_devices
: Stores device datacerberus_user_device_sessions
: Stores session data- Supports polymorphic
authenticatable_type/id
for multiple model support
🛠️ Configuration Options (config/cerberus.php
)
Example:
'token' => [ 'rounds' => 128, 'prefix' => 'cerberus', 'encoding' => 'base64url', 'hash_driver' => 'argon2id', 'hash_enabled' => true, ],
📄 License
MIT © The Can's Group