Auth should be part of the client state since we will need to retry connections when they fail.