bearerToken(); if (!$token) { return response()->json(['message' => 'Token no proporcionado'], 401); } try { $decodedToken = JWT::decode($token, new Key(config('app.jwt_secret'), 'HS256')); if (isset($decodedToken->exp) && $decodedToken->exp < time()) { return response()->json(['message' => 'Token ha expirado'], 401); } return $next($request); } catch (\Firebase\JWT\ExpiredException $e) { return response()->json(['message' => 'Token ha expirado'], 401); } catch (\Exception $e) { return response()->json(['message' => 'Token inválido'], 401); } } }