protected internal virtual UserInfo ParseResponse(string jsonResponse) { throw new NotImplementedException("Authenticator must implement ParseResponse(dynamic) or CompleteAuthentication(string)"); }