bearerToken(); if (!$token) { return response()->json(['error' => 'no_token', 'message' => 'No se envĂ­o el token'], 401); } try { $validated = $this->validateToken($token); } catch (InvalidTokenException $e) { return response()->json([ 'error' => 'auth0_invalid_token', 'message' => $e->getMessage() ]); } $user = Usuario::where('auth0_id', $validated['sub'])->first(); return $next($request->merge(['user' => $user])); } /** * @throws InvalidTokenException */ 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); return $tokenVerifier->verify($token); } catch (InvalidTokenException $e) { throw $e; } } }