martes, 6 de diciembre de 2011

Google App Engine: Uso del servicio de usuarios


Uso del servicio de usuarios

Google App Engine ofrece varios servicios útiles basados en la infraestructura de Google a los que pueden acceder las aplicaciones mediante una serie de bibliotecas incluidas en el SDK. Uno de ellos es el servicio de usuarios, que te permite integrar la aplicación con las cuentas de usuario de Google. Con el servicio de usuarios, los usuarios pueden utilizar sus cuentas de Google existentes para acceder a la aplicación.
Utilizaremos el servicio de usuarios para personalizar el saludo de esta aplicación.

Uso del servicio de usuarios

Vamos a modificar src/guestbook/GuestbookServlet.java tal como se muestra aca abajo, para que se parezca a lo que se muestra a continuación:
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
public class GuestbookServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws IOException {
        UserService userService = UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();

        if (user != null) {
            resp.setContentType("text/plain");
            resp.getWriter().println("Hello, " + user.getNickname());
        } else {
            resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
        }
    }
}
Si utilizas Eclipse y tu servidor de desarrollo se ejecuta en el depurador, cuando guardes los cambios realizados en este archivo, Eclipse compilará el nuevo código de forma automática y, a continuación, intentará insertarlo en el servidor en ejecución. Los cambios realizados en las clases, en las JSP, en los archivos estáticos y en appengine-web.xml se reflejan de inmediato en el servidor en ejecución sin necesidad de reiniciarlo. Si modificas web.xml o cualquier otro archivo de configuración, debes detener e iniciar el servidor para ver los cambios.
Si utilizas Ant, debes detener el servidor y volver a crear el proyecto para ver los cambios realizados en el código fuente. Los cambios realizados en las JSP y en los archivos estáticos no requieren que se reinicie el servidor.
Vuelve a crear tu proyecto y reinicia el servidor en caso necesario. Para probar la aplicación, consulta la URL del servlet en el navegador:
En lugar de mostrar el mensaje, el servidor te solicita una dirección de correo electrónico. Ingresa una dirección de correo electrónico (como, por ejemplo,alfred@example.com) y, a continuación, haz clic en el botón para acceder. La aplicación muestra un mensaje que ahora contiene la dirección de correo electrónico que has introducido.
El nuevo código de la clase GuestbookServlet utiliza el API de usuarios para comprobar si el usuario ha accedido con una cuenta de Google. Si no es así, se redirecciona al usuario a la pantalla de acceso de Google Accounts. userService.createLoginURL(...) devuelve la URL de la pantalla de acceso. La función de acceso sabe cómo redireccionar al usuario a la aplicación de nuevo gracias a la URL que se transfiere a createLoginURL(...) y que, en este caso, se trata de la URL de la página actual.
El servidor de desarrollo sabe cómo simular la función de acceso a Google Accounts. Si se ejecuta en tu equipo local, se redirecciona a la página en la que puedes introducir una dirección de correo electrónico para simular un acceso a la cuenta. Si se ejecuta en App Engine, se redirecciona a la pantalla real de Google Accounts.
Ahora has accedido a tu aplicación de prueba. Si vuelves a cargar la página, el mensaje vuelve a aparecer.
Para permitir que el usuario acceda, proporciona un enlace a la pantalla de acceso generado por el método createLogoutURL(). Ten en cuenta que al hacer clic en un enlace de salida, el usuario sale de todos los servicios de Google.

Siguiente...

Ahora que sabemos cómo identificar al usuario, podemos invitarlo a publicar mensajes en el libro de visitas. Diseñemos una interfaz de usuario para esta aplicación mediante la tecnología JavaServer Pages (JSP), pero eso lo vamos a estudiar en la próxima entrada del Blog, si ? aprender a usar paginas JSP en App Engine.
Hasta la próxima entrada,
MAriano! 

No hay comentarios:

Publicar un comentario