Agregado soporte para auth0 a traves de un middleware

This commit is contained in:
2021-04-20 18:40:00 -04:00
parent 99dd982041
commit 70571568ad
7 changed files with 561 additions and 5 deletions

View 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;
};
}
}