ruvents / spiral-jwt
JWT authorization
Installs: 1 277
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- php: ^8.0
- firebase/php-jwt: ^6.0
- psr/http-message: ^1.0.1
- spiral/framework: ^2.8
Requires (Dev)
- laminas/laminas-diactoros: 2.9.x-dev
- phpunit/phpunit: ^9.5.10
README
This package implements authorization with
JWT tokens in Spiral applications.
firebase/php-jwt
is used for JWT-related work, reference its documentation
for list of supported algorithms.
Installation
composer require ruvents/spiral-jwt
Then add JwtAuthBootloader
to your App.php
:
use Ruvents\SpiralJwt\JwtAuthBootloader; class App extends Kernel { protected const LOAD = [ ... JwtAuthBootloader::class, ] }
Configuration
Default configuration is following:
<?php declare(strict_types=1); return [ 'algorithm' => 'HS256', 'expiresAt' => '+1 week', ];
Copy it and put to your configuration directory into jwt.php
file:
app/config/jwt.php
.
You must supply key
for encryption and decryption.
Symmetric encryption:
<?php use Ruvents\SpiralJwt\Keys; declare(strict_types=1); return [ 'algorithm' => 'HS256', 'expiresAt' => '+1 week', 'key' => new Keys('*PRIVATE KEY*'), ];
Asymmetric encryption:
<?php use Ruvents\SpiralJwt\Keys; declare(strict_types=1); return [ 'algorithm' => 'RS256', 'expiresAt' => '+1 week', 'key' => new Keys('*PRIVATE KEY*', '*PUBLIC KEY*'), ];