A sanctum & AuthenticateByBearerTokenMiddleware
This commit is contained in:
parent
ab6d2f29d2
commit
67a51602c4
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
namespace Blax\Workkit\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class AuthenticateByBearerTokenMiddleware
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
try {
|
||||
$bearer = request()->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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue