Невозможно пройти аутентификацию в свежеустановленном Laravel 11 с MySQL/MariaDB

Я не могу использовать аутентификацию Laravel 11, работающую с MySQL или MariaDB.

Вот что я сделал:

  1. Установите Laravel с помощью composer create-project laravel/laravel foo
  2. Создайте базу данных и отредактируйте .env соответственно (соединение в порядке)
  3. Установите Laravel/Fortify с помощью composer require laravel/fortify
  4. Перенесите БД с помощью сеялки по умолчанию (пользователь: [email protected]/password).
  5. Создана базовая форма входа и базовый домашний вид, в котором отображается имя пользователя при входе в систему.
  6. Разместите базовую форму выхода на главной странице.
  7. Проверьте миллион раз, что @csrf присутствует в формах входа и выхода (он есть)

Вот что происходит, когда я тестирую в браузере:

  • Когда я пытаюсь войти в систему под тестовым пользователем, я не вхожу в систему, но меня корректно перенаправляют на соответствующую страницу, настроенную в Fortify.

  • Когда я пытаюсь войти в систему с помощью тестового пользователя и флажка remember, я вхожу в систему. Но я не могу выйти из системы, получаю ошибку 419 page expired. Это странно. Вот еще страньше:

  • Если я использую SQLite, проблем нет: я могу войти и выйти.

  • Если я использую MySQL/MariaDB и драйвер сеанса file, проблем тоже нет: я тоже могу входить и выходить.

Итак, вот что работает или нет:

База данных Драйвер сеанса Запомнить меня Авторизоваться Выйти MySQL/МарияДБ база данных нет нет н/д MySQL/МарияДБ база данных да да нет MySQL/МарияДБ файл да нет да да SQLite база данных да нет да да SQLite файл да нет да да

Я ничего не нашел о такой проблеме (аутентификация Laravel с MySQL/MariaDB в сочетании с драйвером базы данных сеанса) ни в SO, ни в проблемах Laravel.

Я бегу:

  • Убунту 23.10
  • PHP 8.3.8
  • MariaDB версия 15.1 Распространение 10.11.8-MariaDB
  • Laravel 11.12 с Fortify 1.21.3

Для меня это больше похоже на отчет об ошибке, чем на вопрос, на который мы можем ответить. Вам необходимо поделиться с нами соответствующим кодом, если вы считаете, что это все еще ошибка кодирования с вашей стороны.

Shadow 27.06.2024 13:34

Спасибо за ответ, я нашел проблему...

Arcesilas 27.06.2024 13:42
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я забыл упомянуть одну вещь: я использую UUID для пользователей. Следовательно, таблица сеансов должна быть создана соответствующим образом:

Schema::create('sessions', function (Blueprint $table) {
            // ...
            $table->foreignUuid('user_id')->nullable()->index();

Другие вопросы по теме