google framework google-app-engine oauth-2.0 facebook-oauth google-cloud-endpoints

google-app-engine - google - endpoints framework



Google Cloud Endpoints con otro proveedor oAuth2 (4)

Escribí un ejemplo intercambiando un token de acceso de Facebook por uno generado por mi aplicación y validándolo desde un método de punto final:

https://github.com/loudnate/appengine-endpoints-auth-example

¿Hay alguna forma de utilizar otro proveedor de OAuth2 con Google Cloud Endpoints? Quiero decir, por ejemplo, obtener la autenticación de Facebook y usarla de la misma manera que usamos Autenticación de cuentas de Google (usando gapi js y poniendo la clase de usuario en @ApiMethod )


Los puntos finales de Google Cloud le permiten recuperar User, HttpServletRequest y HttpServletContext en sus métodos de API inyectándolos como parámetros.

No es OAuth2, pero aquí está el comienzo de una solución: https://www.yanchware.com/custom-authentication-for-google-cloud-endpoints/

La solución propuesta es inyectar HttpServletRequest en métodos api específicos para acceder a la sesión.


No. Me encontré con otra persona que hacía esta pregunta y la respuesta de la gente de Google (si recuerdo bien) fue que la autenticación de usuario de los puntos finales actualmente solo admite cuentas de Google.


Tienes que implementar tu propio Authenticator y actualizar la configuración de @Api . Basado en esta answer un simple autenticador se verá así:

public class MyAuthenticator implements Authenticator { @Override public User authenticate(HttpServletRequest request) { String token = request.getHeader("Authorization"); if (token != null) { // apply your Facebook/Twitter/OAuth2 authentication String user = authenticate(token); if (user != null) { return new User(user); } } return null; } }

Y tu definición de API

@Api(name = "example", authenticators = {MyAuthenticator.class})

Más información sobre autenticadores personalizados que puede encontrar en la documentación de Google .