Cuando implementamos webs con Google Apps Script o en general cuando queremos comunicar javascript con Google Apps Script siempre podemos tener problemas en saber cual es el usuario real que está usando nuestro servicios.
Generalmente cuando distribuimos una web implementada con Google Apps Script lo hacemos con los permisos de ejecución del desarrollador. Es decir. la web accede a los datos a los que el desarrollador tiene permiso, y el usuario de la web puede ver el html, pero no puede llegar a los documentos que hay detrás dado que el mismo no tiene permisos. Acostumbra a ser una muy buena manera de recolectar información de diferentes fuentes y poderlas mostrar a los usuarios de una forma controlada y sin tener que dar permisos para nada a nadie.
Ahora bien, ¿Qué pasaría si necesitáramos saber cual es el usuario que accede a nuestra web? Imaginemos que la web ha de mostrar información diferente en función de que usuario se está conectando (una web con diferentes niveles de permisos, por ejemplo) . Google Apps Script nos permite saber sin lugar a dudas cual es el usuario que se conecta a nuestra web y con que usuario se está ejecutando la web, de forma que podremos mostrar información diferente sin ningún tipo de problemas.
Con este ejemplo veréis facilísimo cual es la diferencia entre usuarios conectados a una web:
function doGet() { var active_user = Session.getActiveUser().getEmail(); var effective_user = Session.getEffectiveUser().getEmail(); var user = Session.getUser().getEmail(); var output = "<p>Active: " + active_user + "</p>"; output += "<p>Effective: " + effective_user + "</p>"; output += "<p>User: " + user + "</p>"; return HtmlService.createHtmlOutput(output); }
Si ejecutáis la web con vuestro usuario veréis que los 3 campos son iguales:
Si habéis habilitado que la web se puede ejecutar sin permisos de ninguno tipo, veréis que solo se llena el campo effective mientras que los otros dos quedan vacíos.
No hay comentarios:
Publicar un comentario