2017-07-25 2 views
5

Nous avons des appareils personnalisés qui fonctionnent sur Android OS mais qui ne comprennent pas les services Google Play.
Nous avons une connexion Google en utilisant l'authentification Webview Oauth2.0. Et selon la documentation, il a été déprécié. J'ai lu qu'il existe un moyen https://developers.google.com/identity/sign-in/android/ mais cela semble qu'il nécessite une incorporation progressive pour les services de jeu.
Alors, comment utiliser l'authentification google?
J'ai trouvé 2 options comme ci-dessous mais seront-elles utiles dans mon cas?
1. https://firebase.google.com/docs/auth/android/start/
2. https://developers.google.com/api-client-library/java/google-api-java-client/oauth2Alternative à l'utilisation de webview pour oAuth Google sans incorporation de service Google Play

Ce qui peut être le plus adapté à mon besoin
S'il vous plaît aider.
Cordialement,
Shraddha

Répondre

4

Oui, Google fait un certain temps a bloqué il y a la possibilité de se connecter aux services de via l'application de WebView interne. La raison en est que Google ne fait pas confiance aux fournisseurs d'applications externes, où il n'est pas conscient de la sécurité de la connexion. Il oblige les fournisseurs d'applications externes à utiliser les méthodes de connexion de Google à ses services.

Source: Modernizing OAuth interactions in Native Apps for Better Usability and Security

En effet, vous avez trouvé les bonnes méthodes d'utiliser les services Google, cependant, Firebase et Google Connexion ont inconvénient qui les rend ususable par vous, à savoir les deux ont besoin services Google Play. Firebase needs them et Google Sign-in needs them. Il n'y a donc pas de manière officielle d'utiliser les deux sur les appareils n'ayant pas Google Play Services.

Il existe encore un autre moyen: Chrome Custom Tabs. Toutefois, ils nécessitent l'installation de Chrome sur l'appareil. Et depuis longtemps it also uses Google Play Services. De plus, Chrome onglets personnalisés ont été introduites plus tard que Chrome a intégré services Google Play

Cependant, il y a un hack. Déclarez l'agent utilisateur WebView interne de l'application en tant que Chrome. Voici the documentation. Comme on le voit au bas de cette page, vous pouvez supprimer des chaînes suivantes de WebView User Agent Chaîne:

  • Version/_X.X_ sur Kitkat Devices
  • wv sur les appareils Lollipop +.

Toutefois, je ne recommande pas cette méthode et je vous encourage à vous en tenir à la politique Google, s'il y a une possibilité.

Espérons que cette explication est suffisante.

EDIT: Comme par commentaire ci-dessous, Goole Api Java Client n'a pas besoin services Google Play, donc cela pourrait être une option.

+0

Bonjour, Merci beaucoup pour votre temps.Conformément à la réponse sur SO: https://stackoverflow.com/questions/22142641/access-to-google-api-googleaccountcredential-usingoauth2-vs-googleauthutil-get API Google API Library pour Java est une bibliothèque générique permettant d'accéder aux services Google de tous les types d'applications (Web, installé ou application Android). Cela peut donc être une manière générique sans les services de lecture installés. DROITE? –

+1

Ok. Conformément à cette partie [Client Api Java de Google] (https://developers.google.com/api-client-library/java/google-api-java-client/oauth2#android), les services Google Play ne sont pas nécessaires. Donc vous pourriez essayer ça. Je n'ai pas remarqué, que _Google Api Java Client_ et _Google Sign-In_ sont deux choses différentes. –

+0

Merci. Mais comment obtenir le jeton et autoriser l'utilisateur? –