Хорошо, я пытаюсь объяснить, что происходит
Когда вы открываете две формы входа и c в ваших формах входа, у вас уже есть поле токена csrf со сгенерированным значением, а c это шаблон, НО
давайте предположим, что ваше значение csrf_token равно 123
в обеих формах, и при успешном входе в систему laravel обновляет ваш сеанс, добавляя к нему свой user_id, так что если ваш user_id равен 1
, то ваш токен изменится на 1231
(опять же, это хэшированное значение, но идите вместе со мной), и когда вы отправляете вторую форму с токеном 123
, как вы можете догадаться, 123
не равен 1231
и выдает TokenMissmatchException
В вашем случае вы можете открыть App\Exceptions\Handler.php
и добавить это к вашему методу обработчика
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Throwable $exception
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Throwable
*/
public function render($request, Throwable $exception)
{
// Checks if exception is instance of TokenMissmatchException && it throwed in the login page
if ($exception instanceof \Illuminate\Session\TokenMismatchException && $request->path() === 'login') {
$redirectPath = '/';
return redirect($redirectPath);
}
return parent::render($request, $exception);
}