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