¿Cuál es la URL para el inicio de sesión del usuario (también conocido como ¿Cómo ocultar el formulario de inicio de sesión?)

10

No deseo permitir que los visitantes se registren en mi sitio web; sin embargo, encuentro la necesidad de tener un solo usuario registrado para fines de prueba. Por ejemplo, publicaré un artículo con acceso restringido para que mi usuario de prueba pueda ver cómo se ve el artículo en el sitio sin "airear la ropa sucia" al público en general (ok, todos los 1 / día que realmente visitan ...) .

Mi problema en este momento es que termino desfigurando el sitio web ya que tengo que publicar / publicar el formulario de inicio de sesión del usuario. Actualmente, 'evito' este problema al ocultar el formulario de inicio de sesión en una subcategoría para que no sea inmediatamente visible para un visitante casual. ¿Es posible crear un método alternativo (por ejemplo, una URL personalizada) que permita a mi usuario de prueba ver el contenido marcado como restringido sin alterar lo que vería un invitado con acceso público?

bobthechemist
fuente

Respuestas:

8

Puede crear un menú que no se publique, y poner un enlace a la página de inicio de sesión del usuario allí, y nombrar el alias como desee. Siempre que desactive la función de permitir registros en las opciones del administrador de usuarios, debería ser bueno.

Luego solo dale a tu cliente la url.

Entonces los pasos son:

  1. Crea un nuevo menú, llámalo Oculto
  2. No publique un módulo del nuevo menú.
  3. Agregue un nuevo elemento de menú, elija Administrador de usuarios y formulario de inicio de sesión
  4. Titula el elemento de menú Iniciar sesión o algo así para que sepas qué es, pero cambia el alias a algo que alguien no adivinaría.
  5. Pruebe su formulario yendo a yoursite.com/aliasname
Brian Peat
fuente
10

Como una extensión a la respuesta de Brian Peat:

Si vas a la url

domain.com/index.php?option=com_users&view=login

puede iniciar sesión sin tener un elemento de menú establecido o cualquier tipo de problema de publicación / publicación. Esto podría calificarse como un problema en Joomla, ya que conocer su camino aún puede registrarse / iniciar sesión si conoce la estructura de la URL. Hay reglas para evitar esto, pero por lo general, de forma predeterminada, puede usar rutas directas como esa para llegar a donde necesita ir.

http://www.joomla.org/index.php?option=com_users&view=login

Aquí está en el trabajo, incluso el sitio principal de Joomla que no tiene acceso directo para iniciar sesión se puede acceder de esa manera.

Mi punto es, asegúrese de usar también la ACL adecuada, si son "solo" usuarios registrados, entonces cualquiera que conozca la estructura de Joomla puede ingresar. Además, como Brian había dicho, asegúrese de que permitir los registros esté desactivado.

Jordan Ramstad
fuente
¿Existe una URL análoga para /index.php?option=com_users&view=logout (que pensé que era intuitiva pero resulta ser incorrecta)?
bobthechemist
¿Quieres cerrar sesión automáticamente? Es un poco extraño, cerrar sesión en joomla requiere algunos datos de publicación, de ahí el formulario / botón. Ese enlace te llevará básicamente a un botón.
Jordan Ramstad
Si realmente le preocupa que la gente ingrese a esa página, puede instalar un complemento elegante que obligue al usuario a usar un token como parte de la URL (sé que hay uno para el administrador, bastante seguro de que hay uno para el frente fin) ... pero también puede instalar esto: extensiones.joomla.org/extensions/access-a-security/… que bloquea las IP si el usuario intenta decir, 10 veces para iniciar sesión. También le notifica. Le abrirá los ojos a la frecuencia con la que se ataca su sitio. He notado que el 100% de los intentos usan "admin" como nombre de usuario también.
Brian Peat
Solo quería extender para decir que, incluso sin elementos de menú, el inicio de sesión / registro todavía es accesible. Por lo tanto, si es necesario iniciar sesión sin tener que lidiar con un elemento del menú, es posible, pero también significa que cualquiera puede hacerlo. Si el registro no está bloqueado, cualquiera puede crear una cuenta y acceder a cualquier página "secreta" que pueda haber si no hay una ACL para evitarlo. Esto se puede hacer creando un grupo ACL adicional y haciendo que el usuario que puede acceder a él también se encuentre en ese grupo. La página en cuestión requeriría también ese grupo.
Jordan Ramstad
Um, de qué sirven las ACL si aún no has iniciado sesión. Tengo entendido que nunca puedes ocultar una página de inicio de sesión pública sin un complemento especial. De todos modos, excepto por los ataques de fuerza bruta, si no tiene un inicio de sesión, no puede llegar muy lejos. No veo el uso de jugar tanto con esto.
Brian Peat
4

Debería poder lograr esto anulando el diseño del formulario de inicio de sesión front-end. Agregue un código PHP cerca de la parte superior del archivo de diseño. Este código agregado busca un parámetro personalizado en la URL y un valor particular. Si alguien intenta acceder a la página de inicio de sesión a través de cualquier URL pero no incluye el parámetro personalizado y un valor particular (como abc = xyz ), entonces el código emite un "retorno"; para que el diseño del formulario no se procese para su visualización.

Con este código en el archivo de diseño superior, solo un usuario que conozca la URL (que incluye este parámetro personalizado y un valor aceptable) podrá usar ese formulario de inicio de sesión.

Por ejemplo: la URL secreta puede ser

mydomain.com/?option=com_users&view=login&abc=xyz

Luego agregue este código cerca de la parte superior del archivo de diseño para el formulario de inicio de sesión:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}
RCarey
fuente
¡Buena idea! Esta es una solución bastante fácil para deshabilitar la vista. También se puede extender al módulo, si es necesario (aunque el módulo no tiene una URL directa para acceder).
Jordan Ramstad
3

A menudo me enfrento a un problema similar porque a menudo quiero un inicio de sesión front-end para editar sitios web que administro, sin la necesidad de tener un formulario de inicio de sesión. Terminé creando un pequeño marcador que agregué a la barra de herramientas de mi navegador. Obviamente, esta es una solución muy "local", ya que el bookmarklet solo está disponible para mí (o cualquier persona a la que copie el código), pero funciona en CUALQUIER sitio de Joomla y es un ahorro de tiempo increíble, simplemente haga clic en el enlace y el formulario de inicio de sesión se mostrará (dado que está en un sitio de Joomla, por supuesto ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
johanpw
fuente