Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 апр 2024, 02:06

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 13:44 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Как я понял, авторизацию в любом случае нужно пропускать, через один базовый контроллер?

Потому, что когда я тестирую систему(контроллер) комментариев отдельно от всего основного, то авторизация не работает... В то-же время если вставляю содержимое из контроллера автризации в контроллер комменатриев и с помощью этого авторизируюсь - то авторизация работает, но не синхронистично.

Т.е. щас я немного в тупике - как сделать единую систему авторизации для всего сайта? А то даже контроллер common у меня получается разный. Может использовать какую-то единую библиотеку для авторизации. проверки авторизации, проверки роли и получения данных пользователя.

Подскажите, кто как делает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 14:12 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
все зависит от архитектуры Вашего приложения, я делаю вот так:

https://github.com/WinterSilence/parts- ... /Basic.php

https://github.com/WinterSilence/parts- ... Controller

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 17:16 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Может коммон ещё в один коммон положить? Сделать общий коммон с авторизацией, сессиями и данными о текущем пользователе в него. А потом его уже будет наследовать коммон для фронтенда сайта или напрямую, те части которые используют Ajax, но требуют авторизацию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 17:37 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
так сходу не могу сказать что понимаю на 100%, но у меня вроде так и сделано или вы чем то другом?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 18:10 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Просто так не хочется тащить наследуемый контроллер темплейтов...

Наверное рациональнее сделать отдельный контроллер который будет запускаться "самым первым в before" в коммоне и проставлять значения. Но и так-же его можно будет запускать отдельно. Мне кажется так будет быстрее работать, чем два абстрактных друг друга наследующих класса.

Кроме того, ведь для зоны администратора нужна отдельная авторизация.

И ещё вопрос, что лучше в этом случае присваивать:
$this->auth = Auth::instance();
Или делать ссылку:
$this->auth = &Auth::instance();
?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 18:40 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
сам механизм тот же, меняются лишь условия проверки.
$this->auth = Auth::instance(); и $this->auth = &Auth::instance(); равнозначны. для копирования объектов используется конструкция clone

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 21:01 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
А почему магические классы не выполняются в обычном классе контроллера? Это так и было задумано? А то я ломаю тут голову, почему __construct и __get не срабатывает. А когда прямо присвоишь, то всё работает...
По ходу дела обязательно нужны абстрактные классы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 21:23 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
может магические методы, а не классы? выполняются нормально, в этом то уж никакой магии)) использование абстрактных классов и интерфейсов дело сугубо личное, обязательного их использования не требуется

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 21:47 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Код:
class Controller_Chunks_Login extends Controller {
 
 protected $auth = NULL;
 
 public function __construct () {
 
   $this->auth     = Auth::instance();
 
 }
 
 public function action_index() {
 
  if ($this->auth->logged_in()) {
  $user = $this->auth->get_user();
  $useroptions = View::factory('Public/Chunks/UserOptions');
  $useroptions->username = $user->username;
  $this->response->body($useroptions);
  }
  else {
  $showlogin = View::factory('Public/Chunks/FormLogin');
  $this->response->body($showlogin);
  }
 }


Не работает, как конструкт, так и гет. Я сначала думал в переменной дело... Если сделать переменную $auth - статическое 'Hello World' в конструкторе и вывести через $this->response->body($this->auth), то ничего не выведет... Та-же проблема и с __гет методом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы с авторизацией
СообщениеДобавлено: 05 июл 2013, 22:21 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
вместо __construct () используется метод before обычно.

Код:
class Controller_Chunks_Login extends Controller {
 
 public $test = 'its';
 
 public function __construct() {
  parent::__construct();
   $this->test .= ' work';
 
 }
 
 public function action_index() {
  var_export($this->test);
 }
}

хочешь сказать у тебя такой вариант не срабатывает?
Код:
 $this->response->body($this->auth),

а ты вообще понимаешь что делаешь?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group