1abdulaziz/laravel-quick-login

A Laravel package for quick one-time login links.

1.0.2 2025-05-27 15:44 UTC

This package is auto-updated.

Last update: 2025-05-27 15:56:46 UTC


README

A simple Laravel package that allows users to log in using a one-time token โ€” no database table needed. Tokens are stored in cache and expire after a short time.

๐Ÿ“ฆ Installation

composer require 1abdulaziz/laravel-quick-login

โš™๏ธ Setup

Add this route to your routes/web.php:

use Illuminate\Http\Request;
use LaravelQuickLogin\OneTimeLoginService;

Route::get('/login/token/{token}', function (Request $request, string $token, OneTimeLoginService $service) {
    $user = $service->loginWithToken($token);

    return $user
        ? redirect('/')->with('status', 'Logged in successfully.')
        : redirect('/login')->withErrors(['token' => 'Invalid or expired token.']);
})->name('login.via.token');

๐Ÿงช Usage Artisan

You can generate a one-time login link via Artisan:

php artisan uli 12 --minutes=5

๐Ÿš€ Usage Tinker

You can generate login URLs like this:

use LaravelQuickLogin\OneTimeLoginService;

$service = app(OneTimeLoginService::class);
$url = $service->generateLoginUrl($userId); // valid for 2 minutes by default

Or customize expiration time:

$url = $service->generateLoginUrl($userId, 10); // 10 minutes

๐Ÿ” Security

  • Token is deleted after first use
  • Token expires quickly (default: 2 minutes)
  • Use HTTPS in production

Made with โค๏ธ by [Abdulaziz zaid]