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. // ... }
- Las pestañas personalizadas de Chrome de Android / la API web de Fitbit no se redireccionarán si la aplicación ya está autorizada. (OAuth2.0)
- Integración con Android de Google+ - repetida UserRecoverableAuthException
- ¿Existe ya una biblioteca OAuth2 para Java / Android?
- Android Retrofit2 Actualizar Oauth 2 Token
- Android Jtwitter, problemas de autenticación
- Autenticación de coordenadas de Google
- ¿Cómo / dónde almacenar el token de actualización en Android?
- ¿Cómo evitar la "Acción completa con" emergente con devoluciones de llamada de OAuth de Google?
- Acceso a Google API - GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken ()
- Oauth 2.0: identificación del cliente y secreto del cliente expuestos, ¿es un problema de seguridad?
- ¿Cómo desconectar un usuario de Google en mi aplicación de Android en botón Haga clic en Java?
- ¿GoogleAccountCredential proporciona token de actualización?
- Implementación de OAuth2 con AccountManager, Retrofit y Dagger
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.
- La ubicación de la red de ICS de Android no se actualiza
- Cómo utilizar los datos almacenados en las preferencias compartidas de la clase que no sea de actividad