Laravel - Несоответствие токена CSRF - токен заголовка восстанавливается - PullRequest
0 голосов
/ 20 января 2020

Последние 2 недели я борюсь со следующей проблемой:

Прежде всего, моя проблема возникает только при попытке развернуть мой текущий проект Laravel (6.11) на работающем сервере. На моем Localhost все работает нормально.

В каждом FORM я использовал тег @csrf для установки токена, а также метатег в разделе заголовка моей страницы. Если я найду в инструменте разработчика в Chrome токены в голове и форме, то они будут идеально совпадать. Когда отправляется запрос POST, я получаю ошибку 419 Page Expired. Я понял, что токен HEAD воссоздается при каждом запросе, поэтому происходит несоответствие токена.

Я уже пробовал следующие вещи:

  • Различный синтаксис тега csrf
  • Я исключил все FORMS в VerifyCsrfToken. php - это закончилось в перенаправление на мой индекс. php без подчиненной формы
  • Я проверил все настройки конфигурации Laravel, которые были рекомендованы в различных сообщениях на форуме
  • Я пробовал пустую установку laravel с базой c настройка входа в систему на моем сервере - это сработало
  • В настоящее время я работаю с git. В предыдущей версии коммита (16 декабря), которую я загрузил на свой сервер в тот же день, у меня не было никаких проблем, но когда я попытался повторно загрузить точно такую ​​же дату git, возникает та же проблема.

Greatings Max

Если вам понадобится какой-нибудь код, я выложу здесь.

Контроллер:

function fakeAuthentifizierung(Request $request){
    $username = $request->input('benutzernameLogin');
    $password = $request->input('passwortLogin'); 

    session(['key' => 'mt171043']);
    session(['eingeloggt' => true]);
    /*****
     * ABFRAGE ADMINRECHTE 
     * BITTE DIESEN TEIL SPÄTER IN ECHTE AUTHENTIFIZIERUNG ÜBERNEHMEN
     * 
     */
    $admin = false;
    // SPÄTER BENUTZERID AUS LOGIN  SESSION ÜBERGEBEN
    // astmedin5 als TESTZWECK
    $rechte = Benutzer::getBenutzerBerechtigung("astmedin5");
    //Berechtigung Abfragen
    if($rechte->name != 'Student' && 'Lehrbeauftragter'){
        session(['admin' => true]);
    }else{
        session(['admin' => false]);
    }
    /***
     * 
     * ABFRAGE ENDE
     */

    return redirect(route('index',app()->getlocale()));

}

Вид:

 <form method="POST" action="{{  action('LoginController@FakeAuthentifizierung', app()->getLocale()) }}">
    @csrf

        <h1>{{ __('Login') }}</h1>
        <label class="col" for="benutzernameLogin">{{ __('Benutzername') }}</label>
        <input name="benutzernameLogin" id="benutzernameLogin" class="inputLogin col mb-4" type="text"
            aria-label="Text input with checkbox" placeholder="{{ __('Benutzername') }}" required>
        <label class="col" for="passwortLogin">{{ __('Passwort') }}</label>
        <input name="passwortLogin" id="passwortLogin" class="inputLogin col mb-4" type="password"
            aria-label="Text input with checkbox" placeholder="{{ __('Passwort') }}" required>
        <div class="col-8 float-left">
            <input id="checkboxPasswortAnzeigen" type="checkbox">
            <label for="checkboxPasswortAnzeigen">{{ __('Passwort anzeigen') }}</label>
        </div>
        <button type="submit" class="btn-slash col-3 inverted fontLight float-right">{{ __('Login') }}</button>
    </form>
...