library - implementation com google android gms play services



Google play services sdk: Demande d'accès hors connexion pendant l'authentification (1)

Existe-t-il un moyen de demander un accès hors connexion à l'aide de Google play services sdk sur android? Je sais que l' API HTTP brute a la possibilité de le faire en demandant un jeton d'actualisation, mais n'a pas trouvé le moyen de le faire via le nouveau service SDK de Google Play .

Le nouveau sdk donne à l'application un jeton d'accès à l'aide de la méthode GoogleAuthUtil.getToken() , mais le jeton d'accès expire toutes les heures. Je pourrais faire la requête http brute et demander à l'utilisateur de se connecter à partir d'une vue web ou du navigateur, mais préférerait un moyen de le faire nativement en utilisant le sdk, puisque c'est une bien meilleure expérience pour l'utilisateur.


En cherchant dans les documents Google de près ou de loin, il semble que cela soit possible. Google appelle cette "identité client croisée" dans sa catégorie "Applications hybrides" .

Vous pouvez apparemment masser la chaîne pour le paramètre scope que vous transmettez à la GoogleAuthUtil.getToken(...) pour l'inciter à renvoyer un "code d'autorisation" plutôt qu'un jeton OAuth2. (Pour la différence entre ceux-ci, j'ai trouvé ce tableau utile.)

Les détails sont ici , plus précisément la dernière section intitulée "L'application Android obtient un accès hors ligne pour le back-end Web" .

Il semble que vous aurez besoin de passer la chaîne "scope" suivante à getToken:

oauth2:server:client_id:<your_server_client_id>:api_scope:<scope_url_1> <scope_url_2> ...

Le document affirme alors ceci:

Dans ce cas, GoogleAuthUtil.getToken () demandera d'abord que l'utilisateur ait autorisé ce projet à accéder aux deux portées. En supposant que ce soit OK, il retournera, pas un jeton OAuth, mais un code d'autorisation de courte durée, qui peut être échangé contre un jeton d'accès et un jeton d'actualisation.

Disclaimer: Je n'ai pas encore essayé cela; notre développeur Android sera bientôt. S'il vous plaît signaler si cela fonctionne pour vous.





google-authentication