doLogin() function