Let $x,y$ be arbitrary vectors where $\mathbf{y} \cdot \mathbf{y} = 1$ and $c$ be a real valued scalar. If
$\mathbf{x} \cdot \mathbf{y} = c = c (\mathbf{y} \cdot \mathbf{y} ) = (c \mathbf{y} ) \cdot \mathbf{y} $, then
$\mathbf{x} = c \mathbf{y}$
Is this true? Feels like a sloppy conclusion no?
Now that we have counterexamples, let's look where the fault in the reasoning is.
When you say $x \cdot y = c y \cdot y$, you can't "eliminate" the common $y$ because that would require invertibility of the dot product. By itself, the dot product is not invertible, and you cannot reconstruct $x$ without additional information: in particular, information from the cross product.
Given a vector $x$, and a unit vector $y$, you can decompose $x$ as
$$x = (x \cdot y) y + y \times (x \times y) = x_\parallel + x_\perp$$
With the information you have, you know that $x_\parallel = cy$, but you don't know $x \times y$, and because of that, you don't know $x_\perp$. If you knew that $x \times y =0$, then $x = x_\parallel$, and you'd know you're done.