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

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

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

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

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

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

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

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
public function behaviors(){
 return [
 'access' => [
 'class' => \yii\filters\AccessControl::className(),
 'rules' => [
 [
 'allow' => true,
 'roles' => ['@'],
 ],
 ],
 ],
 ];
}

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

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

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

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

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

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

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

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

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

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

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

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree