Korzystając z protokołu OAuth, potrzebujesz tajnego ciągu znaków uzyskanego z usługi, do której chcesz delegować. Jeśli robisz to w aplikacji internetowej, możesz po prostu przechowywać sekret w swojej bazie danych lub w systemie plików, ale jaki jest najlepszy sposób obsługi tego w aplikacji mobilnej (lub aplikacji komputerowej)?
Przechowywanie ciągu znaków w aplikacji oczywiście nie jest dobre, ponieważ ktoś mógłby go łatwo znaleźć i wykorzystać.
Innym podejściem byłoby przechowywanie go na serwerze i pobieranie go przez aplikację przy każdym uruchomieniu, nigdy nie zapisując go w telefonie. Jest to prawie tak samo złe, ponieważ musisz podać adres URL w aplikacji.
Jedynym wykonalnym rozwiązaniem, które mogę wymyślić, jest najpierw uzyskanie tokena dostępu w normalny sposób (najlepiej za pomocą widoku internetowego w aplikacji), a następnie skierowanie całej dalszej komunikacji przez nasz serwer, który doda sekret do danych żądania i komunikuje się z dostawcą. Z drugiej strony jestem noobem bezpieczeństwa, więc naprawdę chciałbym usłyszeć opinie niektórych znających się na rzeczy ludzi na ten temat. Nie wydaje mi się, żeby większość aplikacji robiła takie kroki, aby zagwarantować bezpieczeństwo (na przykład Facebook Connect wydaje się zakładać, że umieszczasz sekret w ciągu bezpośrednio w aplikacji).
Inna sprawa: nie wierzę, że tajemnica jest związana z początkowym żądaniem tokena dostępu, więc można to zrobić bez angażowania naszego własnego serwera. Mam rację?