Yii2 Access Control. Авторизация в Yii2. Часть 1

Yii2 Access Control. Авторизация в Yii2

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы с вами познакомимся с фильтром контроля доступа – Yii2 Access Control Filter (ACF). Благодаря ACF мы можем реализовать простой контроль доступа к приложению и закрыть, к примеру, администраторскую часть сайта для гостей.

В одной из предыдущих статей мы с вами реализовали модуль админки, который доступен по адресу //yii2/admin. Если сейчас обратиться к нашей админке – мы без проблем в нее попадем, несмотря на то, что мы не авторизованы для этого.

Yii2 Access Control. Авторизация в Yii2

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

Поскольку в админке может быть множество контроллеров и ко всем им нужно применить одно и то же действие, — это наталкивает нас на мысль прописать нужный код единожды в некоем общем файле, чтобы не дублировать его для каждого контроллера. Таким файлом может быть класс app\modules\admin\Module. Пропишем в нем минимальный код, который можно взять из документации по ACF.

Yii2 Access Control. Авторизация в Yii2

Что делает данный код? Собственно, он определяет правило, согласно которому доступ к модулю (‘allow’ => true) имеют только авторизованные пользователи (‘roles’ => [‘@’]). Знак @ — это специальный символ, обозначающий авторизованного пользователя. Другой специальный символ — ? – вы можете помнить по статье, в которой мы устанавливали файловый менеджер. Символ ? обозначает гостя.

Теперь попробуем повторно обратиться к админке:

Yii2 Access Control. Авторизация в Yii2

Поскольку мы не авторизованы, фреймворк запрещает доступ к модулю и производит редирект на страницу авторизации. Попробуем авторизоваться с данными для тестового доступа (логин – admin, пароль — admin). После корректного их ввода мы авторизуемся и успешно попадаем в админку.

Yii2 Access Control. Авторизация в Yii2

Собственно, все – мы реализовали простейшее ограничение доступа, используя фильтр контроля доступа Access Control Filter.

Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Метки:

Похожие статьи:

Комментарии Вконтакте: