From 67a51602c407257c2fa062e8d446b31c23ced0c4 Mon Sep 17 00:00:00 2001 From: Fabian Wagner Date: Mon, 1 Dec 2025 16:59:45 +0100 Subject: [PATCH] A sanctum & AuthenticateByBearerTokenMiddleware --- composer.json | 15 ++------ .../AuthenticateByBearerTokenMiddleware.php | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 src/Middleware/AuthenticateByBearerTokenMiddleware.php diff --git a/composer.json b/composer.json index cc15389..9c1134e 100644 --- a/composer.json +++ b/composer.json @@ -27,6 +27,7 @@ "require": { "php": ">=8.0", "laravel/framework": "*", + "laravel/sanctum": "^4.2", "spatie/once": "*" }, "require-dev": { @@ -45,24 +46,16 @@ "psr-4": {} }, "scripts": { - "post-autoload-dump": [ - "@clear", - "@prepare" - ], - "clear": "@php vendor/bin/testbench package:purge-skeleton --ansi", - "prepare": "@php vendor/bin/testbench package:discover --ansi", - "build": "@php vendor/bin/testbench workbench:build --ansi", + "post-autoload-dump": [], "serve": [ "Composer\\Config::disableProcessTimeout", - "@build", - "@php vendor/bin/testbench serve --ansi" + "@build" ], "lint": [ "@php vendor/bin/pint --ansi" ], "test": [ - "@clear", "@php vendor/bin/phpunit" ] } -} \ No newline at end of file +} diff --git a/src/Middleware/AuthenticateByBearerTokenMiddleware.php b/src/Middleware/AuthenticateByBearerTokenMiddleware.php new file mode 100644 index 0000000..bf56cb4 --- /dev/null +++ b/src/Middleware/AuthenticateByBearerTokenMiddleware.php @@ -0,0 +1,38 @@ +header('Authorization', $request->get('token')); + + cache()->remember('bearer_' . $bearer, 1800, function () use ($bearer) { + $bearer = explode(' ', $bearer); + $bearer = end($bearer); + + $tokenable = optional(PersonalAccessToken::findToken(@$bearer))->tokenable; + + if ($tokenable) { + Auth::login($tokenable); + } + }); + } catch (\Exception $e) { + } + + return $next($request); + } +}