Foros del Web » Programando para Internet » Python »

Problema con login y sesiones en Django

Estas en el tema de Problema con login y sesiones en Django en el foro de Python en Foros del Web. Buenas tardes. Intentando hacer un login en django me sucede que puedo logearme con un usuario sin problemas pero si lo hago con otro distinto ...
  #1 (permalink)  
Antiguo 13/02/2012, 14:53
Avatar de bloodbahamut  
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Problema con login y sesiones en Django

Buenas tardes. Intentando hacer un login en django me sucede que puedo logearme con un usuario sin problemas pero si lo hago con otro distinto en una pestana aparte, me sobreescribe los datos en sesion del primero usuario logeado.

Este es mi login

Código Python:
Ver original
  1. def loginProcess(request):
  2.     usuarioLogin = User()
  3.     usuarioTipo = User()
  4.     usuarioLogin.username = str(request.POST['username'])
  5.     usuarioLogin.password = str(request.POST['password'])
  6.     mensaje = Mensaje()
  7.     mensaje.codigo = 0
  8.     mensaje.mensaje = ""
  9.     try:
  10.         if usuarioLogin.username == "" or usuarioLogin.password == "":
  11.             mensaje.codigo = 0
  12.             mensaje = Mensajes.objects.get(codigo=0)
  13.             paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  14.             paramsTemplate.update(csrf(request))
  15.             return render_to_response('login.html', paramsTemplate)
  16.         else:
  17.             usuarioTipo = auth.authenticate(username=usuarioLogin.username, password=usuarioLogin.password)
  18.             if usuarioTipo is not None and usuarioTipo.is_active:
  19.                 paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  20.                 paramsTemplate.update(csrf(request))
  21.                 if usuarioTipo.is_staff:
  22.                     profesor = Profesor.objects.get(username_id=usuarioTipo.id)
  23.                     auth.login(request, usuarioTipo)
  24.                     usuarioTipo = auth.get_user(request)
  25.                     request.session[usuarioTipo.username] = profesor
  26.                     return render_to_response('inicioProf.html', paramsTemplate)
  27.                 else:
  28.                     estudiante = Estudiante.objects.get(username_id=usuarioTipo.id)
  29.                     auth.login(request, usuarioTipo)
  30.                     usuarioTipo = auth.get_user(request)
  31.                     request.session[usuarioTipo.username] = estudiante
  32.                     return render_to_response('inicioEstud.html', paramsTemplate)
  33.     except ObjectDoesNotExist:
  34.         mensaje = Mensaje.objects.get(codigo=1)
  35.         paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  36.         paramsTemplate.update(csrf(request))
  37.         return render_to_response('login.html', paramsTemplate)

y para obtener los datos y verlos uso los siguentes metodos

Código Python:
Ver original
  1. def consultarDatosEstudiante(request):
  2.     user = auth.get_user(request)
  3.     estudiante = request.session[user.username]
  4.     paramsTemplate = {'datosUsuario': user,'datosEstudiante':estudiante}
  5.     paramsTemplate.update(csrf(request))
  6.     return render_to_response('consultarDatosEst.html', paramsTemplate)
  7.  
  8. def consultarDatosProfesor(request):
  9.     user = auth.get_user(request)
  10.     profesor = request.session[user.username]
  11.     paramsTemplate = {'datosUsuario': user,'datosProfesor':profesor}
  12.     paramsTemplate.update(csrf(request))
  13.     return render_to_response('consultarDatosProf.html', paramsTemplate)

De ante mano gracias por la ayuda que puedan prestarme!!

Última edición por razpeitia; 13/02/2012 a las 15:44 Razón: Resaltado de sintaxis.
  #2 (permalink)  
Antiguo 13/02/2012, 16:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con login y sesiones en Django

Cita:
Iniciado por bloodbahamut Ver Mensaje
Buenas tardes. Intentando hacer un login en django me sucede que puedo logearme con un usuario sin problemas pero si lo hago con otro distinto en una pestana aparte, me sobreescribe los datos en sesion del primero usuario logeado.
Eso es lógico y obvio, si bien se mira.
Diferentes pestañas del navegador comparten cookies entre ellas, y las sesiones se mantienen vía cookies. Ergo, el segundo usuario tiene la misma sesión que el primero, aunque repitas el login.

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:23.