Here is a proof and in fact more information.
Theorem Let $G$ be a finite group and $\chi$ a complex character of $G$, and $g \in G$. Then the following hold.
(a) $|\chi(g)|=1$ if and only if $\chi(g)$ is a root of unity.
(b) If $|\chi(g)|=1$, then $\chi(g) \in \{-1,1\}$ or $\chi(g)$ has even degree.
(c) If $|\chi(g)|=1$, then $\chi(1) \mid |Cl_G(g)|$.
Proof In general, an algebraic integer with absolute value equal to 1 does not have to be a root of unity, see: http://ramanujan.math.trinity.edu/rdaileda/research/papers/p1.pdf. But if all the Galois conjugates of the algebraic integer have absolute value 1, then it is the case indeed.
Let $\alpha$ be an algebraic integer with minimum polynomial $f\in \mathbb{Z}[X]$, which is monic and say of degree $n$. We can assume $n \geq 2$ otherwise $\alpha \in \{-1,1\}$. Assume all the roots of $f$ have absolute value 1. Let us concentrate on the coefficient of $X^i$: the sum of the roots taking $i$ of them each time is in absolute value bounded by ${n}\choose{i}$ by the triangle inequality. Thus the coefficient of $X^i$ is in absolute value bounded by ${n}\choose{i}$, hence for any $n$ there are only finitely many algebraic integers of degree $n$ such that all conjugates have absolute value $1$, since there are only finitely many polynomials in $\mathbb{Z}[X]$ with given bounded coefficients.
Next, consider the powers of $\alpha$. They are all algebraic integers of degree at most $n$, and furthermore all their conjugates also have absolute value $1$ since the Galois actions map powers of $\alpha$ to powers of its conjugates. Thus, the powers of $\alpha$ are elements of a finite set. This implies $\alpha$ must be a root of unity.
The only thing left to show is that if $|\chi(g)|=1$ all the Galois conjugates of the algebraic number $\chi(g)$ also have absolute value $1$. Let $n=o(g)$ and $K=\Omega_{\mathbb{Q}}^{X^n-1} \subseteq \mathbb{C}$ the splitting field. Let $\mathfrak{G}=Gal(K/\mathbb{Q}) \cong (\mathbb{Z}/n\mathbb{Z})^*$. If $\sigma \in \mathfrak{G}$ and $\varepsilon$ is an $n$th-root of unity, then $\sigma(\varepsilon)=\varepsilon^m$, for some $m \in \mathbb{Z}$, with gcd$(m,n)=1$. Now, $\chi(g)=\varepsilon_1 + \cdots + \varepsilon_{\chi(1)}$, a sum of $n$th-roots of unity. Hence, $\sigma(\chi(g))=\varepsilon_1^m + \cdots + \varepsilon_{\chi(1)}^m=\chi(g^m)$. Note that $\mathfrak{G}$ is abelian and that the restriction of complex conjugation to $K$ induces an element of $\mathfrak{G}$ of order $2$. Hence, $|\sigma(\chi(g))|^2=\sigma(\chi(g)) \cdot \overline{\sigma(\chi(g))}=\sigma(\chi(g)) \cdot \sigma(\overline{\chi(g)})=\sigma(|\chi(g)|^2)=\sigma(1)=1$, which yields $|\chi(g^m)|=1$.
(b) By (a) $\chi(g)$ is a root of unity, hence the minimum polynomial of $\chi(g)$ is a cyclotomic polynomial, which has even degree, unless $\chi(g)=\pm1$.
(c) Let $K$ be the sum of the class $Cl_G(g)$ in $\mathbb{C}[G]$. Then $\omega_{\chi}(K)=\frac{\chi(g) \cdot |Cl_G(g)|}{\chi(1)}$ is an algebraic integer (see CTFG, Theorem (3.7)). Hence, the absolute value is an algebraic integer as well, and $|\omega_{\chi}(K)|=\frac{|Cl_G(g)|}{\chi(1)}$ is rational algebraic integer and hence an element of $\mathbb{Z}$.