I have always created my own. Although I've been doing PHP, I'm currently using RoR and it has a plugin that handles all of this. PHP with a database is very easy, especially if you use CodeIgniter, there are form validation helper classes.<p>On registration:<p>- Ask for username and password (do form validation, ie passwords match, xss clean, etc). toLowercase() the login.<p>- Create a hash of some type for the password. This becomes used in the database, and again on login. If you're not worried about security, md5 your password, store it in the db. Otherwise, look up a salt hash.<p>- I typically log the user out and then require them to log in and create a session after they registered.<p>On login<p>- Ask for username and password, toLowercase() the login when checking<p>- Run the same md5 or salt hash against the password, check if the # of rows in the database is > 0, if it is, log the person in and give them a session with a value of "is_logged_in" to true or something similar. Also pull the database user_id or e-mail and use that to remember which user you're dealing with.<p>- If the # of rows found in database is == 0 (where the login and pass equal those from your post variables), the login failed