У меня проблемы с обработкой аутентификации в моем Laravel 5.5. Я установил черту Encryptable
согласно этой записи здесь . Затем я использовал генератор аутентификации, чтобы установить базовые маршруты, представления и обработчик.
Я могу успешно зарегистрировать новые учетные записи и визуально увидеть, что все данные зашифрованы, но я не могу успешно пройти аутентификацию через экран входа в систему.
Кажется, что это сбой во время вызова Auth::attempt($credentials)
. Мое устранение неполадок указывает на зашифрованную черту, потому что, когда я закомментирую этот раздел, аутентификация работает нормально.
Может ли кто-нибудь подсказать, как обрабатывать аутентификацию с использованием этого метода шифрования модели?
Я попытался отключить шифрование для поля имени пользователя, но, похоже, это не помогло. Поле пароля никогда не шифровалось, потому что оно хешируется bcrypt.
1-е редактирование:
Итак, с пониманием того, как работают черты ... черта Encryptable
, кажется, перегружает функции getAttribute / setAttribute. Это будет означать, что запрашивающие функции Eloquent, такие как where
, find
и т. Д., Будут просто «просматривать» зашифрованные значения.
2-е редактирование:
Исходный код, предоставленный для черты Encryptable
, не возвращал правильные значения для незашифрованных значений. Это было изменено, и аутентификация была восстановлена. Для тех, кто использует тот же фрагмент кода, в функции get_attribute()
измените блок else
так, чтобы он return $value;
.
Я ценю все идеи,
Dan