Почему проблема с выходом из системы Laravel jetstrem 419?

когда выход из приборной панели завершился успешно, но нажмите кнопку «Назад», затем войдите в приборную панель,

  • выйти из панели управления
  • затем нажмите кнопку браузера назад
  • и войдите в личный кабинет без адреса электронной почты и пароля
  • затем поверните нажмите кнопку выхода показать страницу ошибки истекло 419

person Azmir Hosen Chowdhury    schedule 09.01.2021    source источник
comment
Потому что вы уже вышли из системы, а кнопка «Назад» выкидывает вам страницу из кеша браузера.   -  person sta    schedule 09.01.2021
comment
Вероятно, из-за несоответствия токена CSRF из-за комментария @sta.   -  person IGP    schedule 09.01.2021


Ответы (1)


То же самое происходит, когда сеанс пользователя истекает (они уже давно ушли), а затем пытается выйти из системы.

Вы можете предотвратить это, исключив токен csrf, когда (сейчас) гость пытается выйти из системы.

Я написал это здесь, https://talltips.novate.co.uk/laravel/csrf-and-expired-logout-forms.

Решение проблемы относительно простое и требует небольшого дополнения к промежуточному программному обеспечению VerifyCsrfToken;

use Closure;

//

    public function handle($request, Closure $next)
    {
        if(!Auth::check() && $request->route()->named('logout')) {
        
            $this->except[] = route('logout');
            
        }
        
        return parent::handle($request, $next);
    }
person Snapey    schedule 09.01.2021