From 1a9b0a4b3f64a78775761838550436264cc31bbe Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Fri, 6 Feb 2026 11:29:22 +0800 Subject: [PATCH 1/4] [4.x] Supports Laravel 13 Signed-off-by: Mior Muhammad Zaki --- .github/workflows/tests.yml | 10 ++++++---- composer.json | 12 ++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 733fe10..f4500e0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,11 +17,13 @@ jobs: strategy: fail-fast: true matrix: - php: [8.2, 8.3, 8.4] - laravel: [11, 12] - include: + php: [8.2, 8.3, 8.4, 8.5] + laravel: [11, 12, 13] + exclude: - php: 8.5 - laravel: 12 + laravel: 11 + - php: 8.2 + laravel: 13 name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} diff --git a/composer.json b/composer.json index 55f5940..efbc7e6 100644 --- a/composer.json +++ b/composer.json @@ -16,15 +16,15 @@ "require": { "php": "^8.2", "ext-json": "*", - "illuminate/console": "^11.0|^12.0", - "illuminate/contracts": "^11.0|^12.0", - "illuminate/database": "^11.0|^12.0", - "illuminate/support": "^11.0|^12.0", - "symfony/console": "^7.0" + "illuminate/console": "^11.0|^12.0|^13.0", + "illuminate/contracts": "^11.0|^12.0|^13.0", + "illuminate/database": "^11.0|^12.0|^13.0", + "illuminate/support": "^11.0|^12.0|^13.0", + "symfony/console": "^7.0|^8.0" }, "require-dev": { "mockery/mockery": "^1.6", - "orchestra/testbench": "^9.15|^10.8", + "orchestra/testbench": "^9.15|^10.8|^11.0", "phpstan/phpstan": "^1.10" }, "autoload": { From db36e3b65cf48a5df096778a92eea3ff962396b9 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Sat, 7 Feb 2026 06:50:34 +0800 Subject: [PATCH 2/4] refactor Signed-off-by: Mior Muhammad Zaki --- src/SanctumServiceProvider.php | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/src/SanctumServiceProvider.php b/src/SanctumServiceProvider.php index a50c855..5bc5d56 100644 --- a/src/SanctumServiceProvider.php +++ b/src/SanctumServiceProvider.php @@ -86,34 +86,24 @@ protected function configureGuard() { Auth::resolved(function ($auth) { $auth->extend('sanctum', function ($app, $name, array $config) use ($auth) { - return tap($this->createGuard($auth, $config), function ($guard) { + return tap( + new RequestGuard( + new Guard( + $auth, + config('sanctum.expiration'), + $config['provider'], + config('sanctum.last_used_at', true) + ), + request(), + $auth->createUserProvider($config['provider'] ?? null) + ) + , function ($guard) { app()->refresh('request', $guard, 'setRequest'); }); }); }); } - /** - * Register the guard. - * - * @param \Illuminate\Contracts\Auth\Factory $auth - * @param array $config - * @return RequestGuard - */ - protected function createGuard($auth, $config) - { - return new RequestGuard( - new Guard( - $auth, - config('sanctum.expiration'), - $config['provider'], - config('sanctum.last_used_at', true) - ), - request(), - $auth->createUserProvider($config['provider'] ?? null) - ); - } - /** * Configure the Sanctum middleware and priority. * From aeffcda8828d14951afb4347d713ede2ed997e2d Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Fri, 6 Feb 2026 22:51:19 +0000 Subject: [PATCH 3/4] Apply fixes from StyleCI --- src/SanctumServiceProvider.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/SanctumServiceProvider.php b/src/SanctumServiceProvider.php index 5bc5d56..e41dfc2 100644 --- a/src/SanctumServiceProvider.php +++ b/src/SanctumServiceProvider.php @@ -96,10 +96,9 @@ protected function configureGuard() ), request(), $auth->createUserProvider($config['provider'] ?? null) - ) - , function ($guard) { - app()->refresh('request', $guard, 'setRequest'); - }); + ), function ($guard) { + app()->refresh('request', $guard, 'setRequest'); + }); }); }); } From aa07f47856ba594ead94f3c0ec7622e9c8e3d126 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Sat, 7 Feb 2026 06:57:28 +0800 Subject: [PATCH 4/4] wip Signed-off-by: Mior Muhammad Zaki --- src/SanctumServiceProvider.php | 38 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/src/SanctumServiceProvider.php b/src/SanctumServiceProvider.php index 5bc5d56..b0f6eca 100644 --- a/src/SanctumServiceProvider.php +++ b/src/SanctumServiceProvider.php @@ -85,25 +85,37 @@ protected function defineRoutes() protected function configureGuard() { Auth::resolved(function ($auth) { - $auth->extend('sanctum', function ($app, $name, array $config) use ($auth) { - return tap( - new RequestGuard( - new Guard( - $auth, - config('sanctum.expiration'), - $config['provider'], - config('sanctum.last_used_at', true) - ), - request(), - $auth->createUserProvider($config['provider'] ?? null) - ) - , function ($guard) { + $requestGuardCreator = fn ($config) => $this->createGuard($auth, $config); + + $auth->extend('sanctum', function ($app, $name, array $config) use ($requestGuardCreator) { + return tap($requestGuardCreator($config), function ($guard) { app()->refresh('request', $guard, 'setRequest'); }); }); }); } + /** + * Register the guard. + * + * @param \Illuminate\Contracts\Auth\Factory $auth + * @param array $config + * @return RequestGuard + */ + protected function createGuard($auth, $config) + { + return new RequestGuard( + new Guard( + $auth, + config('sanctum.expiration'), + $config['provider'], + config('sanctum.last_used_at', true) + ), + request(), + $auth->createUserProvider($config['provider'] ?? null) + ); + } + /** * Configure the Sanctum middleware and priority. *