tutorial pricing prices google flexible español engine appengine app google-app-engine oauth-2.0 google-cloud-endpoints microservices google-oauth2

google app engine - pricing - ¿Cómo verificar la autenticación de servicio a servicio en Google Cloud Endpoints?



google cloud app engine prices (1)

Lo estás haciendo mal. Está definiendo user , pero no lo está usando.

El siguiente ejemplo saluda a un usuario que ha iniciado sesión en la aplicación con un mensaje personalizado y un enlace para cerrar sesión. Si el usuario no ha iniciado sesión, la aplicación ofrece un enlace a la página de inicio de sesión de Cuentas de Google.

Si usa el módulo de from google.appengine.api import users :

def get(self): user = users.get_current_user() if user: nickname = user.nickname() logout_url = users.create_logout_url(''/'') greeting = ''Welcome, {}! (<a href="{}">sign out</a>)''.format(nickname, logout_url) else: login_url = users.create_login_url(''/'') greeting = ''<a href="{}">Sign in</a>''.format(login_url) self.response.write(''<html><body>{}</body></html>''.format(greeting))

Al crear un user , debe verificar si está vacío o no. Además el user almacena diferentes valores. Entonces solo necesita hacerles una llamada y definirlos.

Si tiene páginas que requieren que el usuario inicie sesión para poder acceder, puede aplicar esto en su archivo app.yaml .

De forma predeterminada, su aplicación usará Cuentas de Google para la autenticación. Para elegir otra opción, como el dominio de Google Apps, vaya a la página de configuración de su proyecto en Google Cloud Platform Console y haga clic en Edit . En el dropdown menu autenticación de Google, seleccione el tipo de autenticación deseado y luego haga clic en Save .

Sin embargo, también puedes usar el marco Tipfy .

Intento dividir una aplicación monolítica de Google App Engine (usando Python y entorno estándar) en varios servicios dentro de una aplicación. El servicio predeterminado llama API implementada utilizando el marco Endpoints en otro servicio.

Todo funciona bien, excepto que no entiendo cómo verificar correctamente la autenticación del servicio predeterminado (y hacerlo funcionar tanto en el servidor de desarrollo local como en la producción).

Para llamar al servicio, estoy usando google-api-python-client y las credenciales de la aplicación predeterminada.

from googleapiclient.discovery import build from oauth2client.client import GoogleCredentials service = build( name, version, credentials=GoogleCredentials.get_application_default(), discoveryServiceUrl=discovery_url) service.client_token().execute()

Mi código API de servicio se parece a la siguiente

@endpoints.api( name=''test'', version=''v1'', ) class TestApi(remote.Service): @endpoints.method( message_types.VoidMessage, TestResponse, path=''test'', http_method=''GET'', name=''test'') def get_test(self, request): # user = endpoints.get_current_user() # if not user: # raise endpoints.UnauthorizedException return TestResponse(test=''test'')

En endpoints.get_current_user() producción, endpoints.get_current_user() parece devolver un usuario de aplicación correcto, pero no sé cómo validar correctamente que es la misma aplicación. En el entorno de desarrollo local, endpoints.get_current_user() devuelve None .