PHP code example of s3tech / laravel-auth-kit
1. Go to this page and download the library: Download s3tech/laravel-auth-kit library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
s3tech / laravel-auth-kit example snippets
// app/Models/User.php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Sanctum\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
use S3Tech\AuthKit\Traits\HasAuthKit;
class User extends Authenticatable
{
use HasApiTokens, HasRoles, HasAuthKit;
protected $fillable = ['first_name', 'last_name', 'phone', 'email', 'password', 'must_change_password', 'status'];
protected $hidden = ['password', 'remember_token'];
}
'guard_name' => 'sanctum',
'guards' => [
'sanctum' => ['driver' => 'sanctum', 'provider' => 'users'],
],
// database/seeders/RoleSeeder.php
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
// Rôles
Role::firstOrCreate(['name' => 'super-admin', 'guard_name' => 'sanctum']);
Role::firstOrCreate(['name' => 'manager', 'guard_name' => 'sanctum']);
Role::firstOrCreate(['name' => 'user', 'guard_name' => 'sanctum']);
// Permissions
$permissions = ['manage-roles', 'create-user', 'update-user'];
foreach ($permissions as $perm) {
Permission::firstOrCreate(['name' => $perm, 'guard_name' => 'sanctum']);
}
// Assigner toutes les permissions au super-admin
Role::findByName('super-admin', 'sanctum')->givePermissionTo($permissions);
return [
'route_prefix' => 'api',
'route_middleware' => ['api'],
'user_model' => \App\Models\User::class,
'token' => ['name' => 'auth_token'],
'otp' => [
'length' => 6,
'expires_in' => 10, // minutes
],
'password_rules' => ['min:8'],
'messages' => [
'default_locale' => 'en',
'supported_locales' => ['en', 'fr'],
],
'registration' => [
'mode' => 'self', // 'self' | 'admin' — mutuellement exclusifs
'default_role' => 'user',
],
'profile' => [
// Champs modifiables via PUT /profile et PUT /users/{user}
// Ajouter 'phone', 'avatar'… selon votre table users
'editable_fields' => ['first_name', 'last_name', 'email', 'phone'],
],
'activity_log' => [
'enabled' => true,
'retention_days' => 90, // null = indéfini
'log_events' => [
'register' => true,
'login' => true,
'logout' => true,
'login_failed' => true,
'profile_updated' => true,
'password_changed' => true,
'password_reset' => true,
'otp_requested' => true,
'admin_created_user' => true,
'role_assigned' => true,
'role_revoked' => true,
],
],
'permissions' => [
'manage_roles' => 'manage-roles',
'create_user' => 'create-user',
'update_other_user' => 'update-user',
],
];
$this->logger->log($request, 'budget_updated', auth()->id(), 'update', $budget, [
'updated_fields' => ['amount', 'status'],
]);
bash
php artisan vendor:publish --tag=auth-kit-config
bash
# Sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
# Spatie
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
# Auth Kit
php artisan vendor:publish --tag=auth-kit-migrations
php artisan migrate
GET /api/activity-logs?event=login&from=2024-01-01&to=2024-12-31&per_page=50