jimtools / jwt-auth
Drop in replacement for tuupola/slim-jwt-auth
                                    Fund package maintenance!
                                                                            
                                                                                                                                        JimTools
                                                                                    
                                                                
Installs: 82 322
Dependents: 4
Suggesters: 0
Security: 0
Stars: 16
Watchers: 5
Forks: 146
Open Issues: 1
pkg:composer/jimtools/jwt-auth
Requires
- php: ~8.2 || ~8.3 || ~8.4 || ~8.5
- firebase/php-jwt: ^6.0
- psr/http-message: ^1.0 || ^2.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- equip/dispatch: ^2.0
- friendsofphp/php-cs-fixer: ^3.89
- laminas/laminas-diactoros: ^3.7
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5 || ^12.4
- rector/rector: ^2.2
Replaces
README
This package is a PSR-15 compliant JSON Web Token authentication middleware, which take a JWT from the headers or cookies.
use JimTools\JwtAuth\Decoder\FirebaseDecoder; use JimTools\JwtAuth\Middleware\JwtAuthentication; use JimTools\JwtAuth\Exceptions\AuthorizationException; use JimTools\JwtAuth\Options; use JimTools\JwtAuth\Secret; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Factory\AppFactory; require './vendor/autoload.php'; $app = AppFactory::create(); $app->addErrorMiddleware(false, false, false) ->setErrorHandler(AuthorizationException::class, new MyErrorHandler()); $middleware = new JwtAuthentication( new Options(), new FirebaseDecoder(new Secret('tooManySecrets', 'HS256')) ); $app->get('/protected', static function (Request $request, Response $response, array $args) { $response->getBody()->write('you will need a token'); return $response; })->addMiddleware($middleware); $app->run();
Note
V1 is still supported!! For documentation on v1.x which is compatible with tuupola/slim-jwt-auth
see 1.x
Install
The recommended way to install packages is through composer.
composer require jimtools/jwt-auth
Documentation
GitHub issues are used for only to discuss bugs and new features, for support please use GitHub discussions.
Security
If you discover any security-related issues, please email james.read.18@gmail.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
License
The MIT License (MIT). Please see License File for more information.