@Apostol63

Почему бьется 419 ошибка?

Всем доброго дня!
Прошу помощи, не могу до конца разобраться.

У меня при переходе на auth\loginController@login бьется 419 ошибка.
Гугление показало, что проблема в csrf и драйвере сессии.
Драйвер сессии я делаю свой (так надо), но я не могу понять, что мне нужно сделать, чтобы все работало? Что возвращать?

Вот драйвер (в частности метод write) :
class sessions implements SessionHandlerInterface {
        public function write($sessionId, $data) {
        $isSession = $this->read($sessionId) ? true : false;
        if(!$isSession) {
            $this->model->insert(['id' => $sessionId, 'payload' => serialize(base64_encode($data))]);
            return true;
        } else {
            $x = $this->read($sessionId);
            $payload = unserialize(base64_decode($x[0]['payload']));
            return $payload['_token'];
            // return true;
        }
    }
}


Вот роуты:
Route::post('/login', 'auth\LoginController@login')->name('mylogin');
Route::get('/loginview', 'auth\LoginController@loginview')->name('myloginget');

Route::group(['middleware' => ['custom']], function(){
    Route::get('/sess', 'testController@sess');
    Route::get('/midd', 'testController@midd')->name('midd');
    Route::get('/filemanager', 'filemanagController@toView')->name('filemanager');
});


Вот мой middleware:
public function handle($request, Closure $next) {
        if(Auth::check()) {
            return $next($request);
        } else {
            return redirect()->route('myloginget');
        }
    }


Не могу до конца уловить, что я упускаю.

P.S.
Просьба камнями не кидаться
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
be_a_dancer
@be_a_dancer
Middle Backend/Fullstack Developer
В laravel 419 ошибку вызывает отсутствие поля csrf в запросе. Решения проблемы находится в официальной документации. Хочешь исправить - убери middleware VerifyCsrfToken (не рекомендуется) в App\Http\Kernel.php или приложи csrf заголовок.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы