Como dar logout corretamente?
eu estou usando invalidate(), da session, porem apos efetuar o logout, se clicar no botao voltar do browser, o login eh feito novamente. (Inclusive se dar refresh na pagina, ele continua logado!!!)
Ps.: estou fazendo a seguinte verificacao para saber se existe uma sessao (ou seja, se esta logado):
<% if(session.getAttribute("login")==null){ %>
Ja vi um monte de gente procurando uma solucao pra isso mas nunca vi uma solucao definitiva. Inclusive ja tentei usar tudo isso:
response.setIntHeader("max-age", 0);
response.setHeader("Cache-Control","no-cache");
response.addHeader("Cache-Control","no-store");
response.setHeader("Pragma", "no-cache");
response.setIntHeader ("Expires", -1);
response.addHeader("cache-Control", "private");
Mas nao adianta… acho q preciso fazer uma verificacao a mais, mas nao sei. Alguem ja fez uma pagina de login q realmente funcione e nao dê pau na hr de clicar em “back” do navegador??
acho que seu erro esta bem claro
voce tem de fazer o if com DIFERENTE de null
soh se esta diferente de null eh que ele esta logado
muda isso
<% if(session.getAttribute("login")==null){ %>
pra isso
<% if(session.getAttribute("login")!=null){ %>
ou voce apenas escreveu errado e o que ta dentro do if eh pra quando ele NAO esta logado?
Ah sim… Escrevi errado.
O q nao entendo eh como o login pode voltar!! isso eh muito perigoso…
Nao teria um exemplo de logout q funcione assim, pra me passar??? pode ser bem simples, mas q nao de pau na hr de “voltar”!
ta cetinho o logou
me diz uma coisa, seu login eh feito por FORM onde o action eh get ou post?
muda pra post
Entao cara, mas o problema nao eh se ele loga ou nao…
O problema eh q se eu efetuar o logout, apos clicar no botao back do navegador, magicamente o login eh feito novamente! Posso ate dar refresh nessa pagina q ele continua totalmente logado!!! Isso eh um desastre, pois imagina acontecendo isso com o hotmail, em um computador publico!
eh exatamente por isso q estou te perguntando
se voce esta usando method=get, e esta voltando para a pagina que voce acessou depois de logar, claro que vai funcionar… pq a URL tem a query com login e senha
voce esta logando, deslogando e clicando em back direto neh?
faca o seguinte
logue-se, faca alguma coisa, e deslogue. veja agora se o problema continua…
resolvido!
estava usando forward() ao inves de redirect().
E pelo q vi, o forward() ele mantem as queries (user e pass). nao sei se eh verdade