2017-07-25 63 views
5

Mamy niestandardowe urządzenia działające w systemie operacyjnym Android, ale nie mamy włączonych usług Google Play.
Mamy login Google za pomocą uwierzytelniania Oauth2.0 w przeglądarce internetowej. I zgodnie z dokumentacją została ona usunięta.
Przeczytałem, że jest sposób, https://developers.google.com/identity/sign-in/android/, ale wydaje się, że to wymaga stopniowego włączenia do usług odtwarzania.
Więc w jaki sposób mogę użyć do uwierzytelniania google?
Znalazłem 2 opcje jak poniżej, ale czy będą one pomocne w moim przypadku?
1. https://firebase.google.com/docs/auth/android/start/
2. https://developers.google.com/api-client-library/java/google-api-java-client/oauth2Alternatywa dla korzystania z przeglądarki internetowej dla Google Earth bez włączenia usługi Google Play

który może być najbardziej odpowiednia dla mojego wymogu
Proszę o pomoc.
Pozdrawiam,
Shraddha

Odpowiedz

4

Tak, rzeczywiście google jakiś czas temu zablokował możliwość zalogowania do jego usług za pośrednictwem aplikacji wewnętrzny WebView. Powodem jest to, że Google nie ufa zewnętrznym dostawcom aplikacji, gdzie nie ma świadomości bezpieczeństwa połączenia. Zmusza zewnętrznych dostawców aplikacji do korzystania z metod logowania Google do jego usług.

Źródło: Modernizing OAuth interactions in Native Apps for Better Usability and Security

Rzeczywiście znalezieniu właściwych metod, aby korzystać z usług Google, jednak Firebase i Google Logowanie mają tę wadę, że czyni je ususable przez ciebie, a mianowicie zarówno potrzeba Google Play. Firebase needs them i Google Sign-in needs them. Nie ma więc oficjalnego sposobu korzystania z obu usług na urządzeniach, które nie mają Usług Google Play.

Istnieje jeszcze inny sposób: Chrome Custom Tabs. Wymagają jednak zainstalowania Chrome na urządzeniu. I od dłuższego czasu it also uses Google Play Services. Ponadto Chrome niestandardowe Tabs zostały wprowadzone później niż Chrome włączyła Usługi Google Play

Istnieje jednak hack. Zadeklaruj wewnętrznego agenta użytkownika WebView aplikacji jako Chrome. Oto the documentation. Jak widać na dole tej strony, można usunąć następujące ciągi z WebView User Agent String:

  • Version/_X.X_ o wyrobach KitKat
  • wv na urządzeniach Lollipop +.

Jednak nie polecam tej metody i uprzejmie zachęcam do przestrzegania zasad Google, jeśli jest taka możliwość.

Mam nadzieję, że to wyjaśnienie wystarczy.

EDIT: Zgodnie komentarzu poniżej, Goole Api Java Client nie potrzebuje Usługi Google Play, więc to może być opcja.

+0

Witam, bardzo dziękuję za poświęcony czas.Zgodnie z odpowiedzią na stronie SO: https://stackoverflow.com/questions/22142641/access-to-google-api-googleaccountcredential-usingoauth2-vs-googleauthutil-get Google API Biblioteka klienta dla języka Java to ogólna biblioteka umożliwiająca dostęp do usług Google ze wszystkich typów aplikacji (internetowych, zainstalowanych lub aplikacji na Androida). Może to być ogólny sposób bez zainstalowanych usług odtwarzania. DOBRZE? –

+1

Ok. Zgodnie z tą częścią [Google Api Java Client] (https://developers.google.com/api-client-library/java/google-api-java-client/oauth2#android) nie potrzebuje Usług Google Play. Więc możesz spróbować. Nie zauważyłem, że _Google Api Java Client_ i _Google Sign-In_ to dwie różne rzeczy. –

+0

Dzięki. Ale jak zdobyć token i autoryzować użytkownika? –