Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Проблемы с авторизацией http://forum.kohanaframework.su/viewtopic.php?f=31&t=695 |
Страница 1 из 3 |
Автор: | arhont [ 05 июл 2013, 13:44 ] |
Заголовок сообщения: | Проблемы с авторизацией |
Как я понял, авторизацию в любом случае нужно пропускать, через один базовый контроллер? Потому, что когда я тестирую систему(контроллер) комментариев отдельно от всего основного, то авторизация не работает... В то-же время если вставляю содержимое из контроллера автризации в контроллер комменатриев и с помощью этого авторизируюсь - то авторизация работает, но не синхронистично. Т.е. щас я немного в тупике - как сделать единую систему авторизации для всего сайта? А то даже контроллер common у меня получается разный. Может использовать какую-то единую библиотеку для авторизации. проверки авторизации, проверки роли и получения данных пользователя. Подскажите, кто как делает? |
Автор: | WinterSilence [ 05 июл 2013, 14:12 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
все зависит от архитектуры Вашего приложения, я делаю вот так: https://github.com/WinterSilence/parts- ... /Basic.php https://github.com/WinterSilence/parts- ... Controller |
Автор: | arhont [ 05 июл 2013, 17:16 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
Может коммон ещё в один коммон положить? Сделать общий коммон с авторизацией, сессиями и данными о текущем пользователе в него. А потом его уже будет наследовать коммон для фронтенда сайта или напрямую, те части которые используют Ajax, но требуют авторизацию? |
Автор: | WinterSilence [ 05 июл 2013, 17:37 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
так сходу не могу сказать что понимаю на 100%, но у меня вроде так и сделано или вы чем то другом? |
Автор: | arhont [ 05 июл 2013, 18:10 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
Просто так не хочется тащить наследуемый контроллер темплейтов... Наверное рациональнее сделать отдельный контроллер который будет запускаться "самым первым в before" в коммоне и проставлять значения. Но и так-же его можно будет запускать отдельно. Мне кажется так будет быстрее работать, чем два абстрактных друг друга наследующих класса. Кроме того, ведь для зоны администратора нужна отдельная авторизация. И ещё вопрос, что лучше в этом случае присваивать: $this->auth = Auth::instance(); Или делать ссылку: $this->auth = &Auth::instance(); ? |
Автор: | WinterSilence [ 05 июл 2013, 18:40 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
сам механизм тот же, меняются лишь условия проверки. $this->auth = Auth::instance(); и $this->auth = &Auth::instance(); равнозначны. для копирования объектов используется конструкция clone |
Автор: | arhont [ 05 июл 2013, 21:01 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
А почему магические классы не выполняются в обычном классе контроллера? Это так и было задумано? А то я ломаю тут голову, почему __construct и __get не срабатывает. А когда прямо присвоишь, то всё работает... По ходу дела обязательно нужны абстрактные классы. |
Автор: | WinterSilence [ 05 июл 2013, 21:23 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
может магические методы, а не классы? выполняются нормально, в этом то уж никакой магии)) использование абстрактных классов и интерфейсов дело сугубо личное, обязательного их использования не требуется |
Автор: | arhont [ 05 июл 2013, 21:47 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
Код:
Не работает, как конструкт, так и гет. Я сначала думал в переменной дело... Если сделать переменную $auth - статическое 'Hello World' в конструкторе и вывести через $this->response->body($this->auth), то ничего не выведет... Та-же проблема и с __гет методом. |
Автор: | WinterSilence [ 05 июл 2013, 22:21 ] |
Заголовок сообщения: | Re: Проблемы с авторизацией |
вместо __construct () используется метод before обычно. Код:
хочешь сказать у тебя такой вариант не срабатывает? Код:
а ты вообще понимаешь что делаешь? |
Страница 1 из 3 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |