Agregado soporte para auth0 a traves de un middleware
This commit is contained in:
38
backend/app/Http/Middleware/Auth0Middleware.php
Normal file
38
backend/app/Http/Middleware/Auth0Middleware.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Auth0\SDK\Exception\InvalidTokenException;
|
||||
use Auth0\SDK\Helpers\JWKFetcher;
|
||||
use Auth0\SDK\Helpers\Tokens\AsymmetricVerifier;
|
||||
use Auth0\SDK\Helpers\Tokens\TokenVerifier;
|
||||
|
||||
|
||||
class Auth0Middleware {
|
||||
|
||||
public function handle($request, Closure $next) {
|
||||
$token = $request->bearerToken();
|
||||
|
||||
if (!$token) {
|
||||
return response()->json('No token provided', 401);
|
||||
}
|
||||
|
||||
$this->validateToken($token);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
public function validateToken($token) {
|
||||
try {
|
||||
$jwksUri = env('AUTH0_DOMAIN') . '.well-known/jwks.json';
|
||||
$jwksFetcher = new JWKFetcher(null, ['base_uri' => $jwksUri]);
|
||||
$signatureVerifier = new AsymmetricVerifier($jwksFetcher);
|
||||
$tokenVerifier = new TokenVerifier(env('AUTH0_DOMAIN'), env('AUTH0_AUD'), $signatureVerifier);
|
||||
|
||||
$decoded = $tokenVerifier->verify($token);
|
||||
} catch (InvalidTokenException $e) {
|
||||
throw $e;
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user