Jump to content

Recommended Posts

Posted

Boas, tenho um script de login e logout a funcionar na perfeição.

Mas por motivos de segurança, tenho um auto logout. Ou seja, quando passar 60min a sessão termina. Tenho também uma coluna na base de dados que guarda a ultima visita do utilizador.

O problema disto é que quando eu fecho o separador da pagina, e os 60min passarem, a sessão so termina da proxima vez que alguem aceder a aplicação.

Se eu agora (12:00) fizer o login com o utilizador xpto e deixar a sessão ligada mas fechar o separador, ele so verifica que a sessão inspirou da proxima vez que alguem aceder a aplicação. Ou seja, se as 14:00 eu abrir a pagina, o utilizador xpto irá ficar com o registo de ultima visita as 14:00.

Como posso contornar esta situação?

Já me lembrei de trabalhar com o session_id, guardar na base de dados, e fazer a comparação do utilizador, mas acho que não é uma boa politica.

Tambem ja pensei em triggers no mysql.

Qual é a melhor opção?

Posted

Vamos lá ver se percebi o problema..

O problema disto é que quando eu fecho o separador da pagina, e os 60min passarem, a sessão so termina da proxima vez que alguem aceder a aplicação.

O que é normal..a sessão só finaliza por completo após o fecho do browser.

Se eu agora (12:00) fizer o login com o utilizador xpto e deixar a sessão ligada mas fechar o separador, ele so verifica que a sessão expirou da proxima vez que alguem aceder a aplicação.

O que também é normal..

Ou seja, se as 14:00 eu abrir a pagina, o utilizador xpto irá ficar com o registo de ultima visita as 14:00.

Não. Se guardaste na base de dados a última visita, que foi às 12:00, quando o utilizador voltar à pagina verificas se o mesmo (através de algum parâmetro que guardes na session - por norma o ID do utilizador) na base de dados já tem algum valor e comparas o tempo de diferença. Superior a 60 minutos = obrigatório fazer novamente login.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.