Thorough list of things that you need to deal with if you are building an authentication system.