laravel-jwt-auth maintained by think.studio
Another laravel jwt auth
Another laravel jwt auth package.
This package has very slow support, you might be better off switching to an older and more used
package: tymon/jwt-auth
Installation
Install the package via composer:
composer require think.studio/laravel-jwt-auth
You can publish the config file with:
php artisan vendor:publish --provider="JWTAuth\ServiceProvider" --tag="config"
You can publish migrations:
php artisan vendor:publish --provider="JWTAuth\ServiceProvider" --tag="migrations"
If you don't have encryption / decryption keys, generate them using the command
php artisan jwt:keys:generate
Configuration
Update auth configuration
// config/auth.php
'guards' => [
// ...
'my_api_guard_name' => [
'driver' => 'jwt',
'provider' => 'users',
'public_key' => env('JWT_PUBLIC_KEY', 'jwt-keys/jwtRS256.key.pub'),
'private_key' => env('JWT_PUBLIC_KEY', 'jwt-keys/jwtRS256.key'),
'blocklist' => 'filesystem',
'options' => [],
],
],
Update User model
use Illuminate\Foundation\Auth\User as Authenticatable;
use JWTAuth\Contracts\WithJwtToken;
class User extends Authenticatable implements WithJwtToken
{
use \JWTAuth\Eloquent\HasJwtToken;
//...
}
Usage
Login
/** @var \JWTAuth\JWTGuard $auth */
$auth = Auth::guard('my_api_guard_name');
$token = $auth->attempt($request->only( 'email', 'password'));
if ($token) {
$user = $auth->user();
echo "Access token: {$token}";
echo "User id: {$user->id}";
}
Logout
if(Auth::guard('my_api_guard_name')->check()) {
Auth::guard('my_api_guard_name')->logout();
}



