Есть несколько попыток использовать OAuth. В Твиттере есть XAuth (я забыл, насколько он сломан, и он все еще может быть в бета-версии) Там также Facebook Connect. Они все сломаны.
Есть две основные проблемы:
- Нет доверенного пользовательского интерфейса, кроме веб-браузера (и нетрудно написать похожий «поддельный браузер»). Привлекать веб-браузер неудобно, и я не уверен, что браузер может запускать приложения на Android.
- Там нет ответственности, потому что любое приложение может претендовать на роль любого другого приложения. Любые секреты, встроенные в приложение, не будут такими секретами. (Лично я считаю, что это скорее проблема пользовательского интерфейса.)
Я могу придумать одно полуприличное решение: иметь официальное приложение учетной записи Google. На Android вы запускаете его как действие, и оно дает вам токен аутентификации после его завершения. На iOS вы бы сделали то же самое с URL. Я не уверен, как это работает на WP7 или BB.
Это решает первую проблему, поскольку ожидается, что пользователь уже вошел в систему, и вторую проблему, потому что вам обычно предоставляется некоторый идентификатор приложения, которое вас запустило. (Ну, это решает проблему для пользователей, которые не вводят свой пароль в случайные приложения.)