skulich/laravel-clavis

Laravel Clavis is a lightweight token-based authentication middleware package for Laravel APIs

Maintainers

Package info

github.com/skulich/laravel-clavis

pkg:composer/skulich/laravel-clavis

Statistics

Installs: 239

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.1 2026-03-31 12:54 UTC

This package is auto-updated.

Last update: 2026-04-02 14:56:26 UTC


README

Latest Version on Packagist PHP Version Require Laravel Version Run Tests Code Coverage License Total Downloads

Laravel Clavis is a lightweight token-based authentication middleware package for Laravel APIs.

Perfect for API-first applications and microservices where you need simple and secure token-based authentication without the overhead of Sanctum.

Key benefits:

  • ๐Ÿš€ Quick Setup: Create a token via CLI
  • ๐Ÿ”’ Secure: Built on Laravel's native Hash generator
  • ๐ŸŽฏ Focused: Designed for server-to-server scenarios
  • ๐Ÿงน Clean: No migrations, No users, No dependencies

Table of contents

Installation

Install the package via Composer.

composer require skulich/laravel-clavis

Usage

Generate Token

Generate a new API token via CLI.

The generated token is shown only once. Store it securely and share it over a safe channel.

php artisan clavis:token

Rotate Token

Run the same command to rotate the token. The old token will stop working immediately after regeneration.

php artisan clavis:token

API Middleware

Add the clavis middleware to your API routes.

// Per Route
Route::get('/test', function (Request $request) {
    // return ...
})->middleware('clavis');

// Per Group
Route::middleware('clavis')->group(function () {
    // Route:: ...
});

// Globally in app/bootstrap/app.php
->withMiddleware(function (Middleware $middleware): void {
    $middleware->appendToGroup('api', 'clavis');
})

Failed Auth Events

Failed authentication attempts dispatch Illuminate\Auth\Events\Failed with guard clavis and a masked token.

Event::listen(Failed::class, function (Failed $event) {
    if ($event->guard === 'clavis') {
        Log::warning('Clavis: unauthorized request', $event->credentials);
    }
});

Nota Bene

  • CLAVIS_HASH is a secret, treat it like APP_KEY โ€” never commit it to version control.
  • For internet-facing endpoints, apply Laravel's throttle middleware alongside clavis to mitigate brute-force attacks.

Tests

Run the entire test suite:

composer test

Changelog

Please see CHANGELOG for more information.

Contributing

Please see CONTRIBUTING for more information.

License

The MIT License (MIT). Please see LICENSE for more information.