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

Я создаю приложение Laravel 5.8, и у меня есть существующее приложение, пользователи которого зарегистрированы в таблице SQL. Я могу подключиться к sql, поэтому файлы .env верны, но мне нужны настраиваемые поля в процессе аутентификации. Я проверил онлайн-руководства, но, похоже, многое изменилось с 5.6 или более старых версий, используемых в руководствах, до версии 5.8. Может ли кто-нибудь помочь мне сначала выяснить, как изменить поле имени пользователя на «имя пользователя» вместо «электронная почта», я уже пробовал переопределить функцию в app \ Controllers \ Auth \ LoginController.php, но это просто продолжает говорить: «Эти учетные данные подходят не совпадают с нашими записями ". в разделе ошибок. Моя текущая таблица под названием 'users_custom' содержит следующие поля:

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

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

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

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


person Apoorv Pal    schedule 09.03.2019    source источник
comment
Вы должны определить столбец базы данных, который будет использоваться для входа в LoginController вместо User.php   -  person Sagar Gautam    schedule 09.03.2019
comment
Извините, исправил. Я добавил его в LoginController, а не в модель User.   -  person Apoorv Pal    schedule 09.03.2019
comment
Ваш логин сейчас работает?   -  person Sagar Gautam    schedule 09.03.2019
comment
Неа. Я хочу сказать, что делал это раньше, я просто неправильно это описал. Даже сейчас я получаю те же самые старые данные. Эти учетные данные не соответствуют нашим записям.   -  person Apoorv Pal    schedule 09.03.2019
comment
Добавьте этот метод в начало контроллера входа, а также dd (request () - ›all ()) в контроллер входа, чтобы убедиться, что данные, передаваемые в контроллер, соответствуют вашим ожиданиям со стороны клиента. Убедитесь, что вы добавили этот метод после AuthenticatesUsers trait public function username () {return 'username'; }   -  person Birdy    schedule 09.03.2019
comment
Хорошо, теперь я переместил метод ниже AuthenticatesUsers. И 'dd ($ request- ›all ())', где это должно быть в контроллере входа в систему?   -  person Apoorv Pal    schedule 10.03.2019


Ответы (1)


В config / auth.php измените 'table' = ›'users' на 'table' =› 'custom_user'

и создать миграцию для аккаунтов

person user15181109    schedule 10.02.2021
comment
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки. - person Nico Haase; 10.02.2021
comment
config/auth.php ничего не делать при переносе - person sta; 10.02.2021