Mis favoritos | Español | Acceder

Uso del servicio de usuarios

Google App Engine ofrece varios servicios útiles basados en la infraestructura de Google a los que se puede acceder a través de aplicaciones utilizando una serie de bibliotecas incluidas en el kit de desarrollo de software (SDK). Uno de ellos es el servicio de usuarios, que te permite integrar tu aplicación con cuentas de usuarios de Google. Con el servicio de usuarios, los usuarios de tu aplicación podrán utilizar sus cuentas de Google existentes para acceder a ella.

Utilizaremos el servicio de usuarios para personalizar el saludo de esta aplicación.

Uso del servicio de usuarios

Vuelve a editar helloworld/helloworld.py y sustituye su contenido por el siguiente:

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
  def get(self):
    user = users.get_current_user()

    if user:
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Hello, ' + user.nickname())
    else:
      self.redirect(users.create_login_url(self.request.uri))

application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

Vuelve a cargar la página en el navegador. La aplicación te redirigirá a la versión local de la página de acceso de Google que sea adecuada para la prueba de tu aplicación. Puedes introducir el nombre de usuario que quieras en esta pantalla. La aplicación verá un objeto User simulado basado en ese nombre de usuario.

Cuando la aplicación se esté ejecutando en App Engine, se redirigirá a los usuarios a la página de acceso a las cuentas de Google y después se les volverá a redirigir a la aplicación una vez que hayan creado una cuenta o accedido correctamente.

El API de usuarios

Examinemos con más detalle los nuevos fragmentos:

user = users.get_current_user()

Si el usuario ya ha accedido a la aplicación, get_current_user() devolverá el objeto User correspondiente al usuario. De lo contrario, devolverá None.

if user:
  self.response.headers['Content-Type'] = 'text/plain'
  self.response.out.write('Hello, ' + user.nickname())

Si el usuario ha accedido, aparecerá un mensaje personalizado con el apodo asociado a la cuenta del usuario.

else:
  self.redirect(users.create_login_url(self.request.uri))

Si el usuario no ha accedido, se indicará a webapp que redirija el navegador del usuario a la pantalla de acceso a la cuenta de Google. El redireccionamiento incluirá la URL a esta página (self.request.uri) para que el mecanismo de acceso a la cuenta de Google vuelva a enviar al usuario a esa página una vez que haya accedido o se haya registrado para obtener una cuenta nueva.

Para obtener más información sobre el API de usuarios, consulta la referencia de usuarios.

Siguiente...

La aplicación ya puede saludar a los usuarios invitados por su nombre. Vamos a añadir una función que permita que los usuarios se saluden entre sí.

Para continuar, consulta la sección Uso de formularios con webapp.