cerrar sesion

38 views
Skip to first unread message

spatacian cristian

unread,
Sep 23, 2013, 12:45:22 PM9/23/13
to play-...@googlegroups.com
Hola y buenas a todos. Tengo una duda sobre play 1.2.5 y java a ver si me pueden echar una mano.

La pregunta es como puedo cerrar una sesion correctamente???. 

Por ejemplo: si estoy en mi pagina web, le doy a cerrar sesion y lo realiza todo bien; pero si le doy al boton de navegador de atras me muestra la ultima pagina visitada, o sea que si hay otra persona y le da a "atras" tendra acceso a mi cuenta. Lo que quiero es que una vez que le de a cerrar sesion, si le doy a "atras" que me pida iniciar la sesion.


Muchisimas gracias por su ayuda.

Alvaro Moreno

unread,
Sep 24, 2013, 8:52:58 AM9/24/13
to play-...@googlegroups.com
En el controlador de usuarios coloca un método @Before que mire a ver si el usuario está conectado, si no ha iniciado sesión correctamente le mandas fueras.

Salu2

spatacian cristian

unread,
Sep 24, 2013, 11:42:01 AM9/24/13
to play-...@googlegroups.com
Hola alvaro. Gracias por tu respuesta. Lo que ocurre es que obligo al usuario que inicie sesion. Si no inicia sesion no puede acceder a la pagina.

Cuando inicia sesion me sale la pagina como en la foto inicia.jpg.
Cuando le doy a cerrar sesion me sale la pagina como en la foto cerrar.jpg

Una vez cerrada la sesion si le doy al boton atras del navegador me sale la ultima pagina visitada. Lo que quiero es que si ha cerrado la sesion si le da al boton de atras, que no le salga la pagina visitada sino que le obligue a iniciar sesion otra vez. Segun he leido en internet habia que modificar la cache para que el navegador no guarde la pagina.

Lo he intentado en el application.conf poniendo el  application.session.maxAge=1s pero no funciona no se porque.

Muchas gracias.



2013/9/24 Alvaro Moreno <alvaromor...@gmail.com>
En el controlador de usuarios coloca un método @Before que mire a ver si el usuario está conectado, si no ha iniciado sesión correctamente le mandas fueras.

Salu2

--
Has recibido este mensaje porque estás suscrito a un tema del grupo "Play Framework Latam" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/play-latam/L3JT_Xv_giQ/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a play-latam+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

inicio.jpg
cerrar.jpg

Alvaro Moreno

unread,
Sep 24, 2013, 12:27:33 PM9/24/13
to play-...@googlegroups.com
Como haces para logear al usuario? 

spatacian cristian

unread,
Sep 24, 2013, 1:19:06 PM9/24/13
to play-...@googlegroups.com
La primera pagina nada mas entrar en la pagina web es la foto nr2 que mande antes, con el registro y el loggin.
Para logear el usuario uso este codigo.

public static void iniciaSesion (String nbUs, String con){
  validation.required(nbUs).message("Introduzca su nombre de usuario");
  validation.required(con).message("Introduzca su contrasena");
  usuario user = usuario.find("nombreUsuario = ? and contrasena=?",nbUs,con ).first();
  if(user != null){
  session.put("nbUs", user.nombreUsuario);   
  inicio(user.id);
  }
  params.flash();
  validation.keep();
       flash.error("Nombre o contrasena incorrecta.");
       
       render("Application/principal.html");
   }

saludos.


2013/9/24 Alvaro Moreno <alvaromor...@gmail.com>
Como haces para logear al usuario? 

--

Alvaro Moreno

unread,
Sep 24, 2013, 2:03:50 PM9/24/13
to play-...@googlegroups.com
Al salir borra la session con

session.clear();

Al principio del controlador para la parte en la que debes ser usuario para acceder crea un método @Before. Este método se ejecutará siempre antes de llamar a cualquier método que contenga. De esta forma, al pulsar hacia atrás entrará a inicio y lo ejecutará. 

@Before
public static void beforeAction() {

if ( !session.contains(LOGGED_USER_SESSIONKEY) ){
  Application.index();
}

}
Reply all
Reply to author
Forward
0 new messages