diff --git a/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php b/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php index adee644..18589cb 100644 --- a/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php +++ b/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php @@ -85,7 +85,7 @@ public static function fromFrontend($request) $stateful = array_filter(config('sanctum.stateful', [])); return Str::is(Collection::make($stateful)->map(function ($uri) use ($request) { - $uri = $uri === Sanctum::currentRequestHost() ? $request->getHttpHost() : $uri; + $uri = $uri === Sanctum::$currentRequestHostPlaceholder ? $request->getHttpHost() : $uri; return trim($uri).'/*'; })->all(), $domain); diff --git a/src/Sanctum.php b/src/Sanctum.php index 9fb71ce..f44e433 100644 --- a/src/Sanctum.php +++ b/src/Sanctum.php @@ -30,6 +30,13 @@ class Sanctum */ public static $accessTokenAuthenticationCallback; + /** + * A placeholder to instruct Sanctum to include the current request host in the list of stateful domains. + * + * @var string; + */ + public static $currentRequestHostPlaceholder = '__SANCTUM_CURRENT_REQUEST_HOST__'; + /** * Get the current application URL from the "APP_URL" environment variable - with port. * @@ -49,7 +56,7 @@ public static function currentApplicationUrlWithPort() */ public static function currentRequestHost() { - return '__SANCTUM_CURRENT_REQUEST_HOST__'; + return ','.static::$currentRequestHostPlaceholder; } /** diff --git a/tests/Feature/EnsureFrontendRequestsAreStatefulTest.php b/tests/Feature/EnsureFrontendRequestsAreStatefulTest.php index 9757a49..311724e 100644 --- a/tests/Feature/EnsureFrontendRequestsAreStatefulTest.php +++ b/tests/Feature/EnsureFrontendRequestsAreStatefulTest.php @@ -68,7 +68,7 @@ public function test_same_domain_stateful() config(['sanctum.stateful' => []]); $this->assertFalse(EnsureFrontendRequestsAreStateful::fromFrontend($request)); - config(['sanctum.stateful' => [Sanctum::currentRequestHost()]]); + config(['sanctum.stateful' => [Sanctum::$currentRequestHostPlaceholder]]); $this->assertTrue(EnsureFrontendRequestsAreStateful::fromFrontend($request)); }