refactored to use LoginRequest, and HttpAuthenticator now returns ReduxUser value object