[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Rafael Lannes
Criador Rafael Lannes 31/05/2020

Para customizar as mensagens de sucesso/erro no laravel comecei a utilizar o pacote https://github.com/realrashid/sweet-alert, atende super bem.

Porém, quando eu fazia o redirect com a mensagem, acessava uma outra tela e apertava a opção de voltar. Testei diversas soluções que verificasse a sessão, porém não consegui resolver tratando dessa maneira.

A forma que consegui resolver foi criando um middleware para redirecionar sem o cache do navegador e passo no controller. dessa forma:

  public function handle($request, Closure $next)
    {
        $response = $next($request);
        return $response->header('Cache-Control','no-cache, no-store, max-age=0, must-revalidate'
                        ->header('Pragma','no-cache')                 
                        ->header('Expires','Sun, 02 Jan 1990 00:00:00 GMT'); 
    }

Existe alguma falha nessa abordagem que me causaria algum problema futuro? Porque só funcionou assim

 

Manager Carlos Ferreira 31/05/2020

Olá, Rafael!
Tudo bem?

Não vejo problemas nessa implementação.

Mas, sobre essa opção de volta, é do próprio realrashid/sweet-alert? Deve ter a opção de desabilitar.

Carlos Ferreira
Criador Rafael Lannes 31/05/2020

Opa, Carlos. Tranquilo e por aí?

Então, na verdade essa opção de volta que você comentou é a opção de voltar pelo navegador mesmo.

Então quando eu fazia uma operação de cadastrar, por exemplo. Dava a mensagem de sucesso. E quando eu clicasse em alguma página e voltasse pelo navegador, a mensagem de sucesso aparecia novamente.

Acho que é um problema do navegador mesmo que tenta "reparar a sessão".

Eu até tentei resolver isso de outras maneiras, mas não deu certo

Rafael Lannes
Manager Carlos Ferreira 31/05/2020

Opa, tudo certo.

Ah sim entendi, sim o browser mantém a "sessão".

Uma técnica possível é usar JS para desabilitar o back do browser.

Carlos Ferreira
Criador Rafael Lannes 31/05/2020

Como seria a implementação via js?

Rafael Lannes
Manager Carlos Ferreira 31/05/2020

Veja esse exemplo, para detectar os eventos do browser: https://gist.github.com/tobytailor/1164818

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!