New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

skulich/laravel-clavis

Laravel Clavis is a lightweight token-based authentication middleware package for Laravel APIs
1,006
Install
composer require skulich/laravel-clavis
Latest Version:1.1.1
PHP:^8.3
Laravel:12 · 13
License:MIT
Last Updated:Jun 21, 2026
Links: GitHub  ·  Packagist
Maintainer: skulich

Laravel Clavis

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.
  • Rotating APP_KEY does not invalidate CLAVIS_HASH. Tokens are verified with bcrypt (Hash::check), which is independent of APP_KEY, unlike Laravel's Crypt/encrypt().
  • 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.

Related Packages

erjanmx/laravel-api-auth

Dead simple Laravel api authorization middleware

26,921 19
velcoda/api-auth

Handles Authentication within Velcoda Services

5,306 0
elfsundae/laravel-api

Laravel api client, token, and response.

523 1
aporat/laravel-auth-signature

A Laravel package providing a middleware for validating API requests with HMAC-S...

2,371 1
dreamfactory/df-user

User Management package for DreamFactory.

50,016 4

Version History

Version Released PHP Laravel License
1.1.1 ^8.3 ^12.0 || ^13.0 MIT
1.1.0 ^8.3 ^12.0 || ^13.0 MIT
1.0.0 ^8.3 ^12.42.0 MIT