imunew / tymon-jwt-auth
Installs: 11 724
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/imunew/tymon-jwt-auth
Requires
- php: ^7.0|^8.0
- illuminate/support: ^5.5|^6|^7|^8
- tymon/jwt-auth: ^1.0
Requires (Dev)
- orchestra/testbench: ^5.1|^6.0
This package is auto-updated.
Last update: 2025-10-21 20:29:48 UTC
README
This is the Laravel package to extend tymon/jwt-auth.
Extended what?
- Disable the
QueryString,InputSourceandRouteParamsparsers - Made the
AuthHeadersparser optional (Default: disabled) - Prefer the
Cookiesparser - Made the cookie name changeable
- Add
AuthResource(with cookie) - Add
RefreshJwtTokenmiddleware (with cookie)
Install
$ composer require imunew/tymon-jwt-auth
vendor:publish
$ php artisan vendor:publish --provider="Imunew\JWTAuth\Providers\ServiceProvider"
Config
Set JWT_AUTH_COOKIE_KEY environment variable to change the cookie name.
JWT_AUTH_COOKIE_KEY={cookie name here}
Set JWT_AUTH_AUTH_HEADER_ENABLED environment variable to enable the AuthHeaders parser.
JWT_AUTH_AUTH_HEADER_ENABLED=true
Use AuthResource
Returning AuthResource sets JWT token in cookie.
// App\Http\Controllers\Auth\Login public function __invoke(LoginRequest $request) { $credentials = $request->only(['login_id', 'password']); if (! $token = $this->jwtGuard->attempt($credentials)) { throw new AuthenticationException(); } return new AuthResource(new JwtToken($token, $this->factory->getTTL() * 60)); }
Use RefreshJwtToken
Add \Imunew\JWTAuth\Middleware\RefreshJwtToken::class before \App\Http\Middleware\Authenticate::class.
// App\Http\Kernel protected $middlewarePriority = [ \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Imunew\JWTAuth\Middleware\RefreshJwtToken::class, \App\Http\Middleware\Authenticate::class, \Illuminate\Routing\Middleware\ThrottleRequests::class, \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Auth\Middleware\Authorize::class, ];
Add \Imunew\JWTAuth\Middleware\RefreshJwtToken::class to $middlewareGroups.
// App\Http\Kernel protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ 'throttle:60,1', \Illuminate\Routing\Middleware\SubstituteBindings::class, \Imunew\JWTAuth\Middleware\RefreshJwtToken::class, ] ];