A Promise. When successful, the user is redirected to a URL containing state and code params used to get logged in.