Writing a proper (and simple) auth/login class in PHP
At the first look, no big hole shines through. Some points that can be considered, on the order of appearance:


Instead of directly using the $_POST, you can take these as parameters, thus making it look like more of an API. Example usage: when you want to directly log in people who have just  registered. You will not be tied to some particular $_POST parameters.
Crypt::hash ...: Not seeing the interior of this, one can't comment much but from the looks, the salt seems constant, unless you are querying the users table again inside this. A different (and preferably with a length matching the password) salt for each user is generally the way to go in security-conscious developer environments.
Similar to the #1, you can use a wrapper class for $_SESSION usage.
else if($_SESSION['authenticated'] &amp;&amp; $_SESSION['userid'] &gt; 0 &amp;&amp; !empty($_SESSION['user'])): Instead of directly querying the $_SESSION, you can make another function like $this-&gt;isLoggedIn(), so you'd be more resistant to future session and log in changes (along with some other benefits).
redirect($_SERVER['REQUEST_URI']); Relying on a $_SERVER variable always looked insecure and unstable to me. You can use some checks here or use some of your internal navigation variables instead, in case you don't want to make it completely generic in this way.