Update JWT Token

This commit is contained in:
ivan-sim
2026-02-24 07:51:20 +07:00
parent 8eb82a171c
commit f82c6177a3
11 changed files with 517 additions and 302 deletions

View File

@@ -67,11 +67,12 @@ class Kernel extends HttpKernel
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'linksehat.old.auth' => \App\Http\Middleware\LinksehatOldAuthMiddleware::class,
'corporate.key' => \Modules\Primaya\Http\Middleware\CheckCorporateKey::class,
// Role
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];
}

View File

@@ -23,10 +23,19 @@ class Authenticate extends Middleware
public function handle($request, Closure $next, ...$guards)
{
if (Auth::guard('sanctum')->guest()) {
return response()->json(['error' => 'Bearer Authorization is required'], 401);
// Kalau tidak ada guard dikirim dari route
if (empty($guards)) {
$guards = [null];
}
return parent::handle($request, $next, ...$guards);
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return $next($request);
}
}
return response()->json([
'error' => 'Unauthorized'
], 401);
}
}

View File

@@ -1,7 +1,7 @@
<?php
namespace App\Models;
use Altek\Accountant\Contracts\Recordable;
use Altek\Accountant\Contracts\Recordable;
use App\Traits\Blameable;
use Illuminate\Database\Eloquent\Casts\AsArrayObject;
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -23,6 +23,8 @@ class Corporate extends Model
'help_text',
'active',
'linking_rules',
'api_key',
'api_secret',
'automatic_linking',
'phone',
'phone_alarm_canter',

View File

@@ -11,9 +11,10 @@ use Spatie\Permission\Traits\HasRoles;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Illuminate\Support\Facades\DB;
use Tymon\JWTAuth\Contracts\JWTSubject;
class User extends Authenticatable
class User extends Authenticatable implements JWTSubject
{
use HasApiTokens, HasFactory, Notifiable, HasRoles;
@@ -147,4 +148,14 @@ class User extends Authenticatable
{
return $this->notificationTokens()->orderBy('created_at', 'desc')->pluck('token')->toArray();
}
public function getJWTIdentifier()
{
return $this->getKey();
}
public function getJWTCustomClaims()
{
return [];
}
}