Я не могу использовать аутентификацию Laravel 11, работающую с MySQL или MariaDB.
Вот что я сделал:
composer create-project laravel/laravel foo
.env
соответственно (соединение в порядке)composer require laravel/fortify
@csrf
присутствует в формах входа и выхода (он есть)Вот что происходит, когда я тестирую в браузере:
Когда я пытаюсь войти в систему под тестовым пользователем, я не вхожу в систему, но меня корректно перенаправляют на соответствующую страницу, настроенную в Fortify.
Когда я пытаюсь войти в систему с помощью тестового пользователя и флажка remember
, я вхожу в систему. Но я не могу выйти из системы, получаю ошибку 419 page expired
.
Это странно.
Вот еще страньше:
Если я использую SQLite, проблем нет: я могу войти и выйти.
Если я использую MySQL/MariaDB и драйвер сеанса file
, проблем тоже нет: я тоже могу входить и выходить.
Итак, вот что работает или нет:
Я ничего не нашел о такой проблеме (аутентификация Laravel с MySQL/MariaDB в сочетании с драйвером базы данных сеанса) ни в SO, ни в проблемах Laravel.
Я бегу:
Спасибо за ответ, я нашел проблему...
Я забыл упомянуть одну вещь: я использую UUID для пользователей. Следовательно, таблица сеансов должна быть создана соответствующим образом:
Schema::create('sessions', function (Blueprint $table) {
// ...
$table->foreignUuid('user_id')->nullable()->index();
Для меня это больше похоже на отчет об ошибке, чем на вопрос, на который мы можем ответить. Вам необходимо поделиться с нами соответствующим кодом, если вы считаете, что это все еще ошибка кодирования с вашей стороны.