Я пытаюсь внедрить систему регистрации пользователей в Laravel 5.7, где я сталкиваюсь с проблемой.
У меня есть две таблицы для пользователей - Admin (созданные путем копирования аутентификации Laravel по умолчанию), новые маршруты, новое промежуточное ПО для администратора.Все работает нормально при использовании охраны.
Я пытался ограничить вход пользователя, добавив функцию «Утвердить / Отменить».
Я добавил дополнительный столбец - admin (логическое значение) в таблицу Users.
В контроллере входа - на странице LoginController.php я добавил
protected function authenticated($request, $user)
{
if ( $request->user()->admin != 1)
// if($user->admin != 1)
{
return redirect()->route('approval');
}
else
{
return redirect('/engineer');
}
}
, чтобы, когда администратор равнялся 1, я направлялся в '/ engineer', куда, как и в другом случае, меня направлялидо «одобрения».
Работает как надо !.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, если я пытаюсь получить доступ к «инженеру» с помощью пользователя, чье несанкционированное разрешение, я могу получить доступ к странице.Я не уверен, как это ограничить.Страница по-прежнему ограничена для общего доступа.
Поскольку доступ к контроллеру будет иметь как пользователь, так и администратор, я использовал __construct в контроллере
web.php
Route::resource('engineer', 'engineerController');
engineerController.php
public function __construct()
{
$this->middleware('auth:web,admin');
}
Мое понимание состоит в том, что условие проверяется только тогда, когда пользователь входит в систему и существует после ее выхода.
Нужно ли создавать новое промежуточное программное обеспечение, чтобы сохранить авторизованную страницу нетронутой?
Я самоучка и новичок в Laravel.Я почти уверен, что не следую правильной практике.Я начал что-то и пытался следовать этому, пока не закончу.Пожалуйста, проведите меня через это.
Наряду с этим, пожалуйста, позвольте мне, как я мог сделать это лучше.