Install via composer

Run the following command to pull in the latest version:

composer require php-open-source-saver/jwt-auth

Copy the config

Copy the config file from vendor/php-open-source-saver/jwt-auth/config/config.php to config folder of your Lumen application and rename it to jwt.php

Register your config by adding the following in the bootstrap/app.php before middleware declaration.

$app->configure('jwt');

Bootstrap file changes

Add the following snippet to the bootstrap/app.php file under the providers section as follows:

// Uncomment this line
$app->register(App\Providers\AuthServiceProvider::class);

// Add this line
$app->register(PHPOpenSourceSaver\JWTAuth\Providers\LumenServiceProvider::class);

Then uncomment the auth middleware in the same file:

$app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
]);

Generate secret key

I have included a helper command to generate a key for you:

php artisan jwt:secret

This will update your .env file with something like JWT_SECRET=foobar

It is the key that will be used to sign your tokens. How that happens exactly will depend on the algorithm that you choose to use.

Generate certificate

For generating certificates the command

php artisan jwt:generate-certs

can be used. The .env file will be updated, to use the newly created certificates.

The command accepts for following paramters

name description
force override existing certificates
algo Either rsa or ec
bits Key length for rsa
curve Curve to be used for ec
sha Hashing algorithm
passphrase Passphrase for the cert
dir Folder to place the certificates

Examples

Generating a 4096 bit rsa certificate with sha 512

php artisan jwt:generate-certs --force --algo=rsa --bits=4096 --sha=512

Generating a ec certificate with prime256v1-curve and sha 512

php artisan jwt:generate-certs --force --algo=ec --curve=prime256v1 --sha=512