#php #laravel
У меня есть маршруты (пример):
Route::get('/test', 'TestController@index');
Route::post('/test', 'TestController@post');
.......
Route::get('/testn', 'TestController@indexn');
Route::post('/testn', 'TestController@postn');
Требуется добавить к этим маршрутам определённых посредников (middleware) если пользователь
аунтифицирован (а если нет, то как есть).
Понимаю что это легко организовать через сами контроллеры, но если маршрутов очень
много (и требуется добавить одинаковых посредников), то я считаю что это не практично
писать условия с посредниками в контроллерах.
Как сейчас работает:
if (auth()->check()){
Route::group(['middleware' => ['verified', 'ip']], function() {
Route::get('/test', 'TestController@index');
Route::post('/test', 'TestController@post');
.......
Route::get('/testn', 'TestController@indexn');
Route::post('/testn', 'TestController@postn');
});
} else {
Route::get('/test', 'TestController@index');
Route::post('/test', 'TestController@post');
.......
Route::get('/testn', 'TestController@indexn');
Route::post('/testn', 'TestController@postn');
}
Задача отсеять мультиаккаунтсво. Если пользователь не авторизован, сёрфи спокойно
(половина материала скрыта пока не авторизуешься), но если авторизован с ip с которого
заходил кто-то ещё или проделывал определённые действия, показываю страничку с баном и тд
Требуется ваша помощь, знатоки!
Ответы
Ответ 1
Открываем документацию и читаем Route::middleware(['first', 'second'])->group(function () { Route::get('/', function () { // Uses first & second Middleware }); Route::get('user/profile', function () { // Uses first & second Middleware }); }); Вы можете делать вложенные одна в другую группы. Но я считаю, что у вас неправильная логика приложения, которая сама по себе допускает дублирование кода. Так или иначе, а проверок вам не избежать. Ну или вот так Route::middleware(['auth', 'ip', 'verified'])->group(function () {... Или объединить всё в одним посредник. Но опять вообще не ясно, зачем одни и те же роуты проверять.
Комментариев нет:
Отправить комментарий