JWT Package for Laravel and Lumen

1.0.0 2022-08-26 10:42 UTC

This package is auto-updated.

Last update: 2024-04-11 23:06:15 UTC


README

A simple JSON Web Token Authentication Library built on top of lcobucci/jwt for Laravel and Lumen.

It uses Asymmetric Algorithm using a private key for signature creation and a public key for verification. This means that it's fine to distribute your public key. However, the private key should remain secret.

Laravel Installation

Via composer

composer require nobelatunje/jwt

Install the package

php artisan jwt:install

Generate private and public keys

php artisan jwt:generate

Modify the jwtconfig.php in your config file as necessary and add your app's Policies if necessary.

Change the route driver in your auth.php config file to jwt.

'guards' => [
    'custom_guard' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],

Auth Guard Usage

Routing

Route::middleware('auth:custom_guard')->get('/user', function (Request $request) {
    return $request->user();
});

//if you set jwt as driver for your api guard
Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Login

// Generate a token for the user if the credentials are valid
$token = Auth::attempt($credentials);

User

// Get the currently authenticated user
$user = Auth::user();