bearerToken(); // tidak ada token, lanjut if (!$token) { return $next($request); } // sanctum menyimpan token dengan format "id|token" $parts = explode('|', $token); // pastikan format token benar if (count($parts) !== 2) { return $next($request); } // cari token berdasarkan id $accessToken = PersonalAccessToken::find($parts[0]); // token tidak ditemukan if (!$accessToken) { return $next($request); } // verifikasi hash token $hashedToken = hash('sha256', $parts[1]); if (!hash_equals($accessToken->token, $hashedToken)) { return $next($request); } // token valid, tolak request Log::info('CheckToken - Token valid, tolak request'); return response()->json([ 'message' => 'Anda sudah login, silahkan logout terlebih dahulu!' ], 403); } }