• Publicidad

Regresar a dirección despues de login

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Regresar a dirección despues de login

Notapor bAsTeR » 2009-07-30 09:55 @455

Hola, aquí estoy de nuevo con un nuevo cuestionamiento, en el que busco de nuevo su ayuda.

Resulta ser que tengo sistema web que administra una página, es decir, un CMS, y pues en la página principal tengo una sección donde se registran usuarios queriendo ser parte del equipo, total, al registrarse un usuario, mi aplicación envía un correo al administrador con la dirección a donde se tiene que ingresar para activar ese usuario.

El problema está en que si no estás logeado, te manda a la pantalla de inicio de sesión, y cuando inicias sesión te redirecciona al inicio del administrador, en vez de a la sección que quería entrar en un principio.

¿Cómo puedo hacer para implementar eso de manera que no tenga que modificar tanto mi código? ¿cómo lo harían ustedes?

Gracias de antemano, Salu2
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Publicidad

Re: Regresar a dirección despues de login

Notapor explorer » 2009-07-30 11:00 @500

Muy sencillo: el procedimiento de login lo que tiene que hacer es devolver una redirección (Location:) a la URL indicada en la variable HTTP_REFERER que recibe de la página que provocó el fallo de autenticación.

Es decir: la página de login que aparece ante el usuario puede ser creada mediante un cgi, que recibe en el HTTP_REFERER la dirección que ha usado el usuario para entrar cuando no estaba autenticado. Ese valor lo puedes esconder en uno de los campos ocultos del formulario de login o en las variables de estado en el lado del servidor si usas el método de sesiones.

Cuando el usuario responde al formulario de login, éste comprueba quién es y si le permite paso, hace un Location: hacia el valor que indique el campo oculto.

Esto es incluso compatible con el caso de que el usuario entre en la primera página del sistema.

Seguro que hay otras formas. Por ejemplo, pasar la información del HTTP_REFERER en el propio URL, como si fuera una petición GET.

Esto se puede ver en las páginas de Wikipedia. Si entras en una página especial, te redirige a la página de 'identificarse', con una dirección como esta:

http://es.wikipedia.org/w/index.php?tit ... eguimiento

Intenté entrar en la página "Especial:Seguimiento" pero no me dejó. Allí aparece un enlace a la página a la página "Especial:Entrar" para hacer el login y, además, en el mismo URL, queda registrado el dónde tiene que volver cuando me autentique (el valor del parámetro returnto).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado