added user authentication with password hashing