Несколько паролей в Laravel метод validateCredentials - PullRequest
0 голосов
/ 11 апреля 2020

Привет! Я использую Laravel для создания своего веб-приложения. У меня есть таблица с именем buyerData, в которой у меня есть два столбца, которые предназначены для хранения пароля. Их имена:

1- Password 2- buyerData_fb_password

Теперь проблема, с которой я сталкиваюсь по умолчанию laravel, считает, что столбец, содержащий пароль в вашей таблице, назван как Password. Но в моем случае у меня есть еще одна колонка. Как настроить фреймворк laravel для принятия обоих столбцов в качестве пароля, зависит от столбца, который используется в данный момент времени.

Например, приведенный ниже код работает нормально, поскольку он использует столбец по умолчанию password.

if (Auth::guard('buyer')->attempt(['buyerData_primaryEmail' => $userEmail, 
'password' => $unhashPass]));

Но приведенный ниже код не работает должным образом, так как использует другое имя столбца. buyerData_fb_password и показывает ошибку. (Показано ниже после кода).

if (Auth::guard('buyer')->attempt(['buyerData_primaryEmail' => $userEmail, 
'buyerData_fb_password' => $unhashPass])); 

Показывает эту ошибку

enter image description here

Я немного подправил функцию validateCredentials() и сделал следующие изменения:

publi c функция validateCredentials (UserContract $ user, array $ credentials) {

if (isset($credentials['password']))
 {
      $plain = $credentials['password'];
}

else
{

     $plain = $credentials['buyerData_fb_password'];
}

return $this->hasher->check($plain, $user->getAuthPassword());

}

После этого код работает с buyerData_fb_password и вход успешен, но если я захожу на любую другую страницу на моем сайте, это показывает, что пользователь не является логином. Любое предложение? Спасибо

...