i agree with halojoy.
depending on the security level of you site, $_sessions should work fine.
I am currently writing code that handles authentication on the db level.
basically;
1. logs the users IP
2. logs the time at login
3. generates a random number which is removed from the database on timeout/logout.
then enters all of the information along with the username into a database.
then i use the $_session variable to house the username.
when i call the $_session later i run it through some vaildation to
check that the users IP address matches what's in the db.
and also to make sure that the random number is housed in the db. if this field is empty the script kicks out with an error.
since the username $_session and the IP address can be faked, i had to come up with a solution to counter act this.
the addition of the random number seems to work well.
hope that helps.