Oauth en Appengine con los servicios de Google Play

Estoy utilizando los servicios de reproducción de Google en Android para obtener acceso a Google Apis y Google Cloud Endpoints. También podría acceder a la API de appengine User utilizando un token de Google Play Services. es posible? Hay algún código de ejemplo en este enlace para OAuth, pero es un poco vago. ¿Puedo pasar el token oauth en un encabezado y obtener un usuario con el código de abajo ??

User user = null; try { OAuthService oauth = OAuthServiceFactory.getOAuthService(); user = oauth.getCurrentUser(); } catch (OAuthRequestException e) { // The consumer made an invalid OAuth request, used an access token that was // revoked, or did not provide OAuth information. // ... } 

Usted puede, pero este enfoque no va a ser tan seguro como un escenario donde usted está:

  • utilizando un ámbito específico del servicio para una API de Google
  • acceder a una API de Endpoints directamente

Puede utilizar Google Play Services para obtener un token para el ámbito que desea utilizar. Ya que está interesado en usar la API de Users en App Engine, deseará que el ámbito userinfo.email :

 String mScope = "https://www.googleapis.com/auth/userinfo.email"; try { token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope); } catch { ... } 

Envíe esto a App Engine a través del encabezado de autorización:

 Authorization: Bearer your_token 

A continuación, utilizando la API de OAuth , puede obtener un objeto User :

 String mScope = "https://www.googleapis.com/auth/userinfo.email"; User user = null; try { OAuthService oauth = OAuthServiceFactory.getOAuthService(); user = oauth.getCurrentUser(mScope); } catch (OAuthRequestException e) { // The consumer made an invalid OAuth request, used an access token that was // revoked, or did not provide OAuth information. // ... } 

Pero, en general, usted no quiere hacer esto! Si protege su aplicación de esta manera, otro usuario puede escribir una aplicación que le pide permiso a su ámbito userinfo.email . Una vez concedido, todo lo que necesitan hacer es tomar el token y pasarlo a su aplicación, y aparecen como lo hace. Los puntos finales y otras API de Google tienen lógica adicional en su lugar para evitar este tipo de comportamiento, por lo que es mejor utilizar uno de esos enfoques.

  • SampleSyncAdapter que almacena la contraseña de texto sin formato?
  • IOException lanzada por AccountManagerFuture.getResults mientras que la conexión está viva
  • Cómo acceder a OAuth 2.0 mediante las pestañas personalizadas de Chrome (Fitbit API)
  • ¿Qué es más seguro: navegador externo o ChromeTab para autorización?
  • Google http / oauth2 api siempre lanza EOFException para segundo HTTPRequest
  • Google login obtiene token de acceso con GoogleSignInOptions nuevo
  • Cómo implementar un proceso de token de renovación con JWT para aplicaciones de Android
  • Oauth 2 no puede intercambiar código por token de acceso, devuelve "invalid_grant"
  • ¿Cómo usar el inicio de sesión de Samsung OAuth en Android Device?
  • Validación y uso de auth_token de Android en el lado del servidor
  • 'Solicitud no registrada' mostrada en la pantalla de consentimiento de inicio de sesión de Google+
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.