Laravel 5.8 Разработка аутентификации с пользовательской таблицей и полями

#php #mysql #laravel #laravel-authentication #laravel-5.8

#php #mysql — сервер #laravel #laravel-аутентификация #laravel-5.8 #mysql

Вопрос:

Я создаю приложение Laravel 5.8, и у меня есть существующее приложение, пользователи которого зарегистрированы в таблице SQL. Я могу подключиться к sql, поэтому файлы .env верны, но мне нужны пользовательские поля в процессе аутентификации. Я проверил онлайн-руководства, но, похоже, многое изменилось с 5.6 или более старых версий, используемых в руководствах, до версии 5.8. Кто-нибудь может помочь мне сначала выяснить, как изменить поле имени пользователя на ‘username’ вместо ’email’, я уже пробовал переопределить функцию в appControllersAuthLoginController.php но это просто продолжает говорить «Эти учетные данные не соответствуют нашим записям». в разделе ошибок. Моя текущая таблица с именем ‘users_custom’ содержит следующие поля:

  • идентификатор (УНИКАЛЬНЫЙ, int (5))
  • имя пользователя (varchar(100))
  • пароль (varchar(100)) Примечание: Это более старый пароль в кодировке md5. Мне также нужна помощь с хэш-форматом Laravel, не требуя от пользователей повторного ввода своих паролей, если это возможно.
  • кодовая фраза (varchar(200)) // Это было сделано для DialogFlow в более ранней версии. К этому не нужно обращаться / проверять laravel.

Мое приложение не работает с электронной почтой пользователя, поэтому это поле отсутствует в моей таблице пользователей. Я определил protected $table='users_custom'; в модели пользователей.

РЕДАКТИРОВАТЬ: решено

Не уверен, как, но когда я начал заново с контроллерами авторизации по умолчанию и моделью пользователя, я просто изменил имя таблицы на protected $table = users_custom и добавил public function username() { return 'username'; } в LoginController, и теперь это работает.

Комментарии:

1. Вы должны определить столбец базы данных, который будет использоваться для входа в LoginController вместо User.php

2. Извините, исправил это. Я добавил это в LoginController, а не в пользовательскую модель.

3. Работает ли ваш логин сейчас?

4. Нет. Я хочу сказать, что я делал это раньше, я просто неправильно это описал. Даже сейчас я просто получаю то же самое старое «Эти учетные данные не соответствуют нашим записям».

5. Добавьте этот метод в начало logincontroller, а также dd(request()-> all()) в контроллере входа в систему, чтобы убедиться, что данные, передаваемые контроллеру, соответствуют вашим ожиданиям от клиента. Убедитесь, что вы добавили этот метод после аутентификации пользователя с помощью общедоступной функции username() { возвращает ‘username’; }

Ответ №1:

В config/auth.php измените ‘table’ => ‘users’ на ‘table’ => ‘custom_user’

и создайте миграцию для учетных записей

Комментарии:

1. Пожалуйста, добавьте некоторое объяснение к вашему ответу, чтобы другие могли извлечь из него уроки

2. config/auth.php ничего не делайте при миграции