Pergunta complicado responder porque tudo depende de como criou o login sem saber isso e como eu já sei que você alterou muitas coisas possa ser isso
Se o usuário fechar o browser inteiro, sem nenhum processo rodando no SO, a sessão deveria encerrar automaticamente.
Se estiver falando da aba, matar a sessão ao fechar a aba não é uma experiência boa pro usuário. Ele pode ter várias abas abertas do site e fechar uma delas. Mas se quiser, no browser tente usar o evento onbeforeunload.
Qual seria a dificuldade? No request que entra nessa página voce encerra a sessao.
utilizei esse método para finalizar {{Session::flush()}} porém não funciona.
existe alguma forma de executar esse evento que já existe do laravel de sair do sistema? pq quando eu clico nele tudo funciona perfeitamente.
Isso já não funciona? É só fazer o mesmo request feito nesse menu logout, chamando do lugar que quiser.
já tentei, porém não consigo executar essa mesma funcionalidade. analisar melhor aqui…
Posta o código desse menu.
<div class="nav-side-menu">
<div class="brand"><img width=40% height=40% src="{{asset('imagens/logo-psicologia.png') }}"/><br>
<span style="font-variant:small-caps;font-weight:bold;">{{ Auth::user()->username }} <b>|</b></span>
<a style="color:red; text-decoration: none; font-weight:bold" href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Sair
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content collapse out">
<li>
<a href="/dashboard"><i class="fa fa-tachometer-alt sidebar-icon"></i> Dashboard</a>
</li>
<li data-toggle="collapse" data-target="#CadPessoas" class="collapsed">
<a href="#"><i class="fa fa-life-ring fa-users"></i> Cadastros Pessoas<span class="arrow"><i class="fa fa-angle-down"></i></spam></a>
</li>
<ul class="sub-menu collapse" id="CadPessoas">
<li><a href="/ListaColaboradores" id="psicologo"><i class="fa fa-angle-right"></i> Psicólogos</a></li>
<li><a href="/ListaPacientes" id="pacientes"><i class="fa fa-angle-right"></i> Pacientes <small><i class="fa fa-external-link"></i></small></a></li>
</ul>
<li data-toggle="collapse" data-target="#CadGerais" class="collapsed">
<a href="#"><i class="fa fa-life-ring fa-pen"></i> Cadastros Básicos<span class="arrow"><i class="fa fa-angle-down"></i></spam></a>
</li>
<ul class="sub-menu collapse" id="CadGerais">
<li><a href="/ListaTiposAtendimentos" id="tipoAten"><i class="fa fa-angle-right"></i> Tipos de Atendimentos</a></li>
<li><a href="/ListaSintomasQueixas" id="sinQuei"><i class="fa fa-angle-right"></i> Sintomas Queixas <small><i class="fa fa-external-link"></i></small></a></li>
<li><a href="/ListaSalasLocal" id="salas"><i class="fa fa-angle-right"></i> Salas <small><i class="fa fa-external-link"></i></small></a></li>
</ul>
<li>
<a href="#"><i class="fa fa-clipboard-list"></i> Marcação de Consultas</a>
</li>
<li data-toggle="collapse" data-target="#relatorios" class="collapsed">
<a href="#"><i class="fa fa-chart-line"></i> Relatórios<span class="arrow"><i class="fa fa-angle-down"></i></spam></a>
</li>
<ul class="sub-menu collapse" id="relatorios">
<li><a href="#" id="conPsi"><i class="fa fa-angle-right"></i>Consultas Por Psicólogos</a></li>
<li><a href="#" id="conAte"><i class="fa fa-angle-right"></i>Tipo de Atendimento <small><i class="fa fa-external-link"></i></small></a></li>
<li><a href="#" id="relStatus"><i class="fa fa-angle-right"></i>Pacientes Por Status <small><i class="fa fa-external-link"></i></small></a></li>
<li><a href="#" id="historico"><i class="fa fa-angle-right"></i>Histórico do Paciente <small><i class="fa fa-external-link"></i></small></a></li>
</ul>
<li data-toggle="collapse" data-target="#config" class="collapsed">
<a href="#"><i class="fa fa-cog"></i> Configurações<span class="arrow"><i class="fa fa-angle-down"></i></spam></a>
</li>
<ul class="sub-menu collapse" id="config">
<li><a href="/ListaUsuarios" id="usuario"><i class="fa fa-angle-right"></i>Usuários</a></li>
<li><a href="#" id="parametro"><i class="fa fa-angle-right"></i>Parâmetros do Sistema <small><i class="fa fa-external-link"></i></small></a></li>
</ul>
</ul>
</div>
</div>
No href do link tem o endereço que faz o request do logout. Poste o código apontando o outro lugar que quer chamar essa funcionalidade.
eu não entendi direito o que vc quer…
mas seria o código da tela de login?
<div class="container"><!--Início do Container-->
<div class="d-flex justify-content-center h-100">
<div class="card">
<div class="card-header">
<h3>Sistema de Gestão para Psicólogos</h3>
</div>
<div class="card-body">
<form method="POST" action="{{ route('login') }} " ><!--Início do form-->
@csrf
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
<input onkeypress="DefinirBgUsuario()" type="text" class="form-control" id="usuario" name="username" placeholder="Usuário" value="{{ old('login') }}">
</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
<input onkeypress="DefinirBgSenha()" type="password" class="form-control" id="senha" name="password" placeholder="Senha">
</div>
<div class="form-group">
<button id="btn" type="submit" value="Entrar" onclick="ValidarLogin();" class="btn float-right btn-primary">
{{ __('Login') }}</button>
</div>
@if(Session::has('errors'))
<script>
$(document).ready(()=>{
ValidarLogin(1);
})
</script>
@endif
</form><!--Fim do form-->
</div>
<div class="card-footer">
<div class="d-flex justify-content-center links">
<a href="#">Esqueceu a sua senha?</a>
</div>
</div>
</div>
</div>
O que eu quero nao, o que voce quer, apontar onde voce quer encerrar a sessão, qual evento, seja no front ou no back.
eu queria fazer o seguinte, toda vez que entrar na tela de login eu queria verificar se existe uma sessão aberta, se existe finaliza-la.
Essa tela de login tem um request pro back responder essa página no browser, certo? Lá no back (onde você responde com a página), faz a mesma coisa que fez no logout.
Eu acho que esse problema só está acontecendo com você (tenho certeza), veja, o Framework, não tem falha nisso, para sair de um login de usuário é Auth::logout();
via documentação e bem explicado e você precisa fazer isso para que o sistema sai desse usuário. Vale lembrar que fechar o navegador e o usuário não ter mais validade é o padrão, mas, você mudou o sistema em outros post
que você mesmo relatou, então, pode ser isso, muda em um lugar e não muda nos outros e você foi alertado que sem conhecimento fica complicado mudar aqui ou ali (veja não me leve a mau você quem fez isso).
O comportamente natural é assim, mas, se você mandar remember = true
como último paramento do login faz com que o sistema só sai quando você utilizar Auth::logout();
e possa ser isso.
Como a gente não tem o código na integra, como a gente não sabe como você mudou, e já vi você fazendo Session::get('errors')
sem necessidade nenhuma fica claro que o problema está no seu código e foi causado pela suas mudanças
Ratificando, espero que leve isso como lição, mexer hoje com Laravel
está cada vez dificil, porque você tem preguiça de ler a documentação.
Nessa resposta tem como fazer a saída do usuário (Auth::logout();
) e você pode ler na documentação de autenticação todo o processo. É bom ler porque o problema pode ser resolvido ai.
Porque ninguém consegue ajudar: porque o seu problema é oculto e até agora você não demonstrou subsídios para uma resposta ideal.
mas se vc fazer o teste com a forma de login padrão do laravel, vc vai perceber que quando vc volta pra tela de login sem ser pela opção de deslogar a sessão do usuário continua ativa.
Errado!
Quando você entra no login e o usuário está logado, existe um middleware
que verificar se existe usuário logado e redireciona.
Veja você mexeu em pontos que não deveria que até mudou o comportamento da aplicação.
fiz o teste aqui agora, loguei no sistema e em seguida voltei pra tele HOME. dps disso cliquei em HOME e ele redirecionou pra dentro do sistema.
o que eu quero é simplesmente finalizar a sessão quando eu voltar pra HOME. atualmente só finaliza a sessão se o cara clicar em logout.
Simples quando entrar na rota de o comando Auth::logout()
!
depois de horas conseguir resolver meu problema…
tem uma classe chamada RedirectIfAuthenticated
dentro dela adicionei Auth::logout();
ficando assim…
*/
public function handle($request, Closure $next, $guard = null)
{
Auth::logout();
if (Auth::guard($guard)->check()) {
return redirect('/login');
}
return $next($request);
}
Isso não é a solução isso era só tirar do middleware. Tá vendo você mudando o que não é pra ser mudado.