@Evgeniuster

Где проверять авторизацию пользователя?

Здравствуйте!

Самописный движок MVC.
Нужно на странице показать разный контент для авторизованного и не авторизованного пользователя.
Где проверять авторизацию?

Вижу два варианта:
1. Проверяем в контроллере (авторизация есть) и когда передаем во вью, указываем вью, который для авторизованного.
А если вариантов таких страниц будет много? Или уровней пользователей будет несколько, с разным набором блоков для показа... Для каждого варианта делать свою вьюшку?

2. Проверяем во вью и уже там решаем показывать конкретный блок или нет.
Но это как бы не по фэншую перекладывать на вью логику... или нет?


Какой способ обычно используется?
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Показывать или не показывать блок на странице, это логика отображения
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
Иногда логика отображания может быть очень сложной, и вроде бы все просто есть контроллер, есть шаблон, есть данные. Подходов для решения может быть много, я бы выбрал следующий:
1. Контроллер принимает запрос от пользозователя и обращается к сервису для получения контента
2. Сервис контента, формирует контент но при этом проверяет права доступа, авторизиван не авторизован, дата,время, группа пользователя если атворизован, его пол и все что угодно. Отдает обратно контент согласно условиям.
3. Контроллер получив контент передает в шаблон.
Ответ написан
@necrodeflorator
Зависит от страницы.
Если это профиль пользователя, то логично его редиректнуть на форму авторизации - этим занимается контроллер, точнее контроллер должен вернуть RedirectResponse
Если это кусок хтмля в шапке сайта, то отображение - в простейшем случай в темлейте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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