Попытка входа в систему с изменением столбца - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу, чтобы два пользователя использовали один и тот же номер мобильного телефона и пароль, но у них может быть разный role_id, который является столбцом (я добавил в таблицу пользователей), этот role_id может иметь различное значение в зависимости от роли пользователя. давайте предположим, что 4 для менеджера, 5 для супервизора.

Я хочу, чтобы менеджер и супервизор использовали один и тот же номер мобильного телефона и пароль при входе в систему, есть ли способ передать третий параметр (role_id вместе с mobile_no и паролем) и laravel попытка входа в систему для проверки этого значения и попытки входа в систему этих учетных данных из базы данных.

Я знаю, что мы можем добавить активные (boolen) столбцы, в которые мы можем передать значение, чтобы учетная запись была активной. Но здесь role_id может иметь любое значение, начиная с 1.

Так есть ли способ, которым я могу изменить функцию попытки или проверить условие where вместе с номером мобильного телефона, паролем и role_id, чтобы laravel попытался войти в систему с этими учетными данными связанный с этим role_id.

Что я пробовал, я пытался создать двух пользователей с одинаковым номером мобильного телефона и паролем, laravel не регистрирует ни одного из них, потому что он не знает, какой пользователь должен войти в систему, а также другой пароль также не работает для того же номера мобильного телефона

я использую laravel 5.8

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете написать свой собственный лог авторизации c, используя фасад Auth. Посмотрите документацию: Проверка подлинности пользователей вручную

Таким образом, вам нужно будет извлечь ролид откуда-нибудь, чтобы узнать, к какому пользователю он должен попытаться войти, и в контроллере у вас будет что-то вроде этого:

// This is assuming that you're getting all the info from the form
// You can create your own array and set the information how you want.
$credentials = $request->only('mobile_number', 'password', 'role_id');

if (Auth::attempt($credentials)) {
    // Authentication passed
    // do what you want when the
    // user gives valid credentials
}

Обратите внимание, что мы также передаем role_id методу attempt, что означает, что он попытается найти совпадение в базе данных для mobile_number, password и role_id и получить этого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...