zendrop / laravel-jwt
Installs: 63 071
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- firebase/php-jwt: ^6.8
- laravel/framework: ^9|^10|^11
Requires (Dev)
- laravel/pint: ^1.13
- phpstan/phpstan: ^1.10
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.7
This package is not auto-updated.
Last update: 2025-01-16 13:56:57 UTC
README
This package provides a simple way to use JWT (JSON Web Tokens) as an authentication guard in a Laravel application.
Installation
Require package zendrop/laravel-jwt
composer require zendrop/laravel-jwt
Setup
After installation, you need to add service provider to your config/app.php
'providers' => [ ... Zendrop\LaravelJwt\LaravelJwtAuthServiceProvider::class, ]
and publish the package configuration with command
php artisan vendor:publish
Don't forget to run migrations
php artisan migrate
Configuration
Modify the generated config/laravel-jwt.php
in the config folder to suit your needs:
- Algorithm: Set the JWT algorithm you wish to use (default is HS256).
- Keys: Specify the encode and decode keys. By default, it uses the APP_KEY from your Laravel .env file.
- Payload: Configure issuer (iss) and time-to-live (ttl) for the JWT.
- Blacklist Driver: Specify the driver used for handling blacklisted tokens (default is a database driver).
Usage
HasJwt Trait
Include the HasJwt
trait in your User model or any other authenticatable model:
use Zendrop\LaravelJwt\HasJwt; class User extends Authenticatable { use HasJwt; ... }
This provides the makeJwt()
method to generate JWT for the user.
JWT Guard
In your auth.php
config file, you can define the JWT guard:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ... ], 'api' => [ 'driver' => 'laravel-jwt', // Use the JWT guard 'provider' => 'users', ], ... ]
For stateful JWT:
'guards' => [ 'web' => [ 'driver' => 'laravel-jwt-cookie', 'provider' => 'users', ], ]