OAuth - встраивание секретности клиента в ваше приложение?

Я смотрю на реализацию oauth twitter, предлагаемую здесь:

https://dev.twitter.com/docs/auth/oauth

и oauth-библиотеки, такие как signpost:

http://code.google.com/p/oauth-signpost/

они оба говорят об использовании секретности клиента во время потока oauth, что означает для моего клиентского приложения, мне нужно будет хранить секрет в самом приложении. Это, вероятно, опасно, поскольку кто-то может захватить секрет из моего приложения. Существуют ли какие-либо методы хранения секретности в моем приложении? Неужели я неправильно понимаю поток oauth?

Спасибо

Ответ 1

Нет способов хранения учетных данных клиента в приложении native или JavaScript, не делая их практически общедоступными. Кроме того, размещение этих учетных данных на прокси-сервере и общение с сервером на сервере (так что учетные данные не отображаются) также ничего не решает. Теперь у вас есть проблема аутентификации клиента с прокси.

Правильное решение - иметь специальную поддержку для собственных приложений, предоставляемых службой OAuth. OAuth 2.0 использует предварительно зарегистрированные URI перенаправления и другие методы для обеспечения разумной проверки подлинности клиента для таких клиентов.