Задать вопрос
humiliation
@humiliation
Чем больше знаю - тем больше дурак

Как на все роуты повесить авторизацию?

Приветствую!

Тут мое приложение разрослось, переехало на слим и вот какой вопрос:

сейчас в каждый роут вставляю контроллер, проверяющий права доступа к этому разделу + авторизации.
например:

/cabinet
/cabinet/1
/cabinet/2
/cabinet/2/2
/cabinet/2/3/info

И все бы ничего, но если таких страниц будет 100 - много лишнего кода будет же.
а можно ли как-то определить один раз чтобы контроллер на каждый роут срабатывал. Я так понимаю смотреть надо в строну Route Group и Middleware ?
  • Вопрос задан
  • 510 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
@DmitrSha
да, нужно использовать middleware, группировки роутов по необходимости
Видео курс Authentication with Slim 3
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GM_pAnda
@GM_pAnda
Бездельник
Смотрите, контроллер cabinet должен наследовать базовый контроллер, получите в базовом контроллере роут нужный и сделайте проверку что-то вроде. А точнее смотрите документацию своего фрейморка) Или подождите ответа того кто разбирался в SLIM
if(Auth::check() == false && $route['controller'] != 'Login'){
      redirect('/admin/login/'); die;
}
Ответ написан
Eridani
@Eridani
Мимо проходил
Не знаю что за слим и т.п, но как бы, было бы логично поделить приложение на две части - ЮзерКонтроллер и АдминКонтроллер, грубо говоря. От них пусть наследуются остальные, а родительский как раз и будет заниматься проверкой на auth.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы