Ответ 1
Twitter BasicAuth потребовал от разработчика приложения сохранить имя пользователя и пароль пользователя и передать их вместе с каждым запросом.
OAuth - открытый стандарт, в котором пользователь перенаправляется в Twitter, заполняет свое имя пользователя/пароль там (или уже зарегистрирован), а затем предоставляет разрешение на использование учетной записи. Приложение никогда не видит имя пользователя/пароль.
Чтобы процитировать страницы twitter:
Базовая аутентификация - это обязательство. Сохраняя логины и пароли, разработчик принимает дополнительные обязанности по обеспечению безопасности хранение этих учетных данных; потенциальный вред пользователям при входе в систему учетные данные утечки или злоупотребления очень высоко. Потому что многие пользователи используют тот же пароль на многих сайтах, вероятность повреждения не обязательно остановитесь с их Twitter счет.
Смотрите: http://dev.twitter.com/pages/basic_to_oauth
Примечание. Я ничего не знаю о xauth, поэтому оставляю ответы другим.