Форум программистов, компьютерный форум, киберфорум
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 02.09.2013
Сообщений: 237
1

Авторизация в Yii

03.07.2015, 16:36. Показов 1100. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Опишу проблему.
Задача стоит такая.
Когда мы открываем наш "сайт" то изначально по умолчанию у нас открывается страница "/site/index". Это главная страница нашего сайта.
Нам нужно, чтобы, в случае если наш пользователь НЕ авторизован, то пользователь открыв "наш сайт" сразу же попадал на страницу с формой для авторизации, а другие страницы "сайта" были бы не доступны.
Как я понял проверка авторизован / не авторизован делается функцией
PHP
1
Yii::$app->user->isGuest;
Но проблема в том что я не понимаю где прописать это условие
PHP
1
2
3
4
5
if(!Yii::$app->user->isGuest){
    "Пользователь авторизован -> Видит главную страницу"
}else{
    "Пользователь не авторизован -> Видит форму авторизации"
}
У меня была мысль прописывать такое условие для КАЖДОГО метода контроллера
Например:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public function actionTeaching(){
        $model = new LoginForm();
        if(!Yii::$app->user->isGuest){
            return $this->render('teaching');
        }else{
            return $this->render('login', [
               'model' => $model,
            ]);
        }
    }
    
    public function actionObjects(){
        $model = new LoginForm();
        if(!Yii::$app->user->isGuest){
            return $this->render('objects');
        }else{
            return $this->render('login', [
               'model' => $model,
            ]);
        }
    }
И этот способ работает конечно, но мне он кажется слишком "костыльным". Нет ли способа по красивее??
Заранее спасибо. Буду рад любым подсказкам и предложениям.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2015, 16:36
Ответы с готовыми решениями:

Авторизация YII
Здравствуйте уважаемые форумчане. Объясню суть моей проблемы: В themes->...->layoys->main.php у...

Авторизация на Yii
Не совсем понятна мне схема авторизации. Как вообще работает? Там для чтения остается только папки...

Yii авторизация с использованием RBAC
Сделал авторизацию по примеру. Подскажите, пожалуйста, в чем отличие двух видов проверки в...

Yii авторизация. Можно ли оптимизировать код?
Делаю авторизацию пользователей. В случае если пользователь не активен ( не подтвержден) после...

1
[Bicycle Reinventor]
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
08.07.2015, 15:17 2
Все твои контроллеры наследуются от контроллера /protected/components/Controller.php
Пропиши в него:
PHP
1
2
3
4
5
6
7
8
        public function beforeAction($action)
    {
        if((Yii::app()->user->isGuest) && !($action->controller->id == 'site' && $action->id == 'login'))
        {
            $this->redirect(array('site/login'));
        }
        return true;
    }
Если у тебя страница логина в другом месте, поправишь соответствующим образом.
0
08.07.2015, 15:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2015, 15:17
Помогаю со студенческими работами здесь

Yii Framework Авторизация пользователей c хранением данных в текстовом файле
как такое реализовать ?

Почему в yii может быть пустым Yii::app()->request->urlReferrer?
Добрый день, Засунул в экшн контроллера (users/registration) такую конструкцию: if(!$role ||...

Как в Yii можно выполнить действие обратное Yii::app()->user->checkAccess('3')?
Руководствовался рецептом yiiframework.ru/doc/cookbook/ru/access.rbac.file . Только изменил ключи...

Yii поиск
Пытаюсь реализовать поиск по БД таким образом, чтобы выводились все записи в названии, которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru