[Php-avanzado] Pregunta sobre logueo de usuarios

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Sab Feb 6 14:18:53 ARST 2010


Hola Lucas,

El vie, 05-02-2010 a las 21:23 -0300, Lucas Nastri escribió:
> Hola gente, les quería consultar como hacen lo siguiente:
> 
> Yo tengo una ventana de login, una vez que el usuario se loguea
> (posterior a una validación contra una tabla de la base de datos) debo
> mostrarle las acciones que puede realizar. Cada usuario tiene permisos
> distintos. Algunos pueden acceder a funcionalidades del sistema que
> otros no. Por eso, una vez que el usuario ya se logueó, ¿Cómo haría
> para mostrarle a que partes del sistema puede acceder?, ¿debería tomar
> el id que tiene en la base de datos y por medio de ese id comprobar a
> qué partes puede acceder?.

	Lo más cómodo es tomar el perfil del usuario, y pasarlo por un switch
que, según dicho perfil, mostrará unas cosas sí y otras cosas no.

	Pero con esto no alcanza, ya que alguien podría ver el URL escrita en
el navegador y volver a escribirla a mano loguaedo con un usuario
distinto.
	Cada página debe preguntar por el perfil, y si es válido, mostrarse o
salir (o volver al index,php).

	Esconder los URLs no es seguridad!

> Otra cosa ... para comprobar que el usuario sigue estando logueado en
> otra página debería guardar el id de la sesion y manejarme con ese id
> preguntando si existe en cada página?.

	Hay varias alternativas...
	La más confiables es guardar en la sesión el usr y pass, y en cada
página volverlo a pasar por la función de autentificación, para ver si
en ese momento es un usuario válido o no.

	Extra: si además de guardar el usr y pass en la sesión, la función de
validación también guarda el ID del perfil, te ahorrás consultar en la
DB el perfil del usuario para el switch y para ver si tiene acceso o no
a esa página.

> Muchas gracias!.

	Por nada!
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado