add user authentication with Bcrypt and helper methods