Insertar parametros en la URL tras un logout desde un site

Tweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0Digg thisBuffer this pageEmail this to someone

Una de las cosas que me llevaba de cabeza desde hace un tiempo era como podía insertar parámetros a la URL resultante de realizar una acción de logout. Salesforce emplea la dirección «{!$Site.Prefix}/secur/logout.jsp» para desloguear a un usuario de un site y limpiar todas las cookies de su navegador, vamos,  expulsarlo del sistema. En el apartado Setup –> Customize –> Customer Portal –> Settings –> Nombre de tu site, podréis encontrar el valor LogoutURL. Fijando este valor podéis meterle todos los parámetros que queráis, y os aparecen en vuestra página de inicio. Esto a veces será válido y otras veces no. En mi caso tengo 3 marcas diferentes que utilizan el mismo site y la misma página de login. Por lo tanto en función del parámetro de la URL mostraré un logo u otro. Cuando hacia el logout todos los parámetros de la URL desaparecían, perdía el contexto y dejaba de mostrar el logo deseado. La solución pasa por crear una página intermedia, es decir, en vez de ejecutar directamente el link «{!$Site.Prefix}/secur/logout.jsp», al clickear en el botón LogOut de nuestro portal, lo que haremos será sustituirlo por un link a una página sin contenido donde ejecute el link logout.jps y tras un intervalo corto de tiempo nos redirija a la página de login con nuestros parámetros deseados.

Crear nuestra nueva página Visualforce intermedia que se llamará logOut_Site.page y llegaremos a ella mediante un enlace que etiquetaremos en nuestro portal como ¨Logout¨.

Este será nuestro nuevo link.

Y este el código de nuestra página:

El comando <apex:iframe> nos permitirá ejecutar en link de logout en segundo plano, siendo este acto totalmente transparente para el usuario. Utilizando el segmento de java scrip nos crearemos una función que nos redireccione a la página de login, con los parámetros que deseemos.

Que tengáis buenos salesforce 😉

,