let $A$ be an idempotent matrix $(A = A^2 )$
let $\lambda$ be an eigenvalue of A and let $X$ be an eigenvector corresponding to the eigenvalue $\lambda$.
$AX = \lambda X $
$A^2X = \lambda^2 X $ $(A = A^2)$
from above we can say,
$AX = A^2X$ and $\lambda X = \lambda^2X$
$\lambda = \lambda ^2$
the above is satisfied only when $\lambda = \text{0 or 1}$
An idempotent matrix is always diagonalizable and its eigenvalues are either 0 or 1