Я столкнулся с той же проблемой и решил ее следующим образом.
1
Для сторонних приложений, использующих мой API, они должны проходить аутентификацию через OAuth для всех запросов.
2
Для моих собственных сторонних клиентов (мобильные, AIR и т. Д.) - они используют OAuth, с той разницей, что я разрешаю им отправлять имя пользователя и пароль непосредственно на этапе авторизации (поэтому я могу создать собственный диалог входа в систему). Это при условии, что ваш API работает через SSL / HTTPS.
3
Для своего веб-приложения я использую аутентификацию cookie для доступа к API. Т.е. после входа в систему пользователь может просто вызвать API: urls и получить обратно JSON / XML. Отлично подходит для быстрого изучения API-интерфейсов (хотя настоящая API-консоль, такая как APIGee, там работает лучше).