Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Теряется авторизация http://forum.kohanaframework.su/viewtopic.php?f=32&t=845 |
Страница 1 из 1 |
Автор: | borodatych [ 17 дек 2014, 11:06 ] |
Заголовок сообщения: | Теряется авторизация |
Доброго времени суток. Переношу имеющийся проект, написанный в функциональном стиле, на данный ФВ. Так как база уже есть, то текущий модуль авторизации чуть-чуть не подходит. Но ни чего, по аналогии делаю свой... За основу взял class Kohana_Auth_ORM extends Auth Но с небольшим НО, просто class Auth_MyORM extends Auth, минуя пустой класс для расширения class Auth_MyORM extends Kohana_Auth_MyORM{} Первое что сделал: Код:
Первым делом я избавился от жесткой привязки к имени модели. Заменил ORM::factory('User') на ORM::factory($this->_config->model). Теперь имя модели берется из конфига, добавил гибкости так сказать. После, закоментировал $password = $this->hash($password); , и дал тестовому пользователю просто пароль, далее будет своя реализация $this->hash() Потом я избавился от ролей, их попросту нет в текущей базе... Попутно пришлось $user->unique_key($username), пере определить в своей модели, заменив username на login. Так как не считаю кол-во входов и прочее: Код:
То закомментировал $user->complete_login() В итоге, все как бы работает. В нужном контроллере: Код:
$this->e(Session::instance()); - vardump + exit И наблюдаю выхлоп: Код:
Радостно комментирую vardump и жму F5. В контролере отвечающему маршруту /cabinet: Код:
Получаю: Код:
[test] => testValue - был сформирован в Controller_Base То что формировалось в Controller_UAuth, посеялось... Есть у кого идеи, почему, что упустил? |
Автор: | WinterSilence [ 17 дек 2014, 22:25 ] |
Заголовок сообщения: | Re: Теряется авторизация |
ну так ты же перезаписываешь данные сессии в классе наследнике, а потом вызываешь родительский метод.. Код:
|
Автор: | borodatych [ 18 дек 2014, 13:37 ] |
Заголовок сообщения: | Re: Теряется авторизация |
Не соглашусь. Насколько могу судить, при таком стопе, то что в родители не выполняется?! Тогда почему я вижу, то что сформировалось при первом проходе именно из базавого контроллера? Цитата: [test] => testValue - был сформирован в Controller_Base Добавлю инфы: В общем пока ждал ответа, решил повелосипедить: Код:
@session_start(); , именно с @, так как ругалось на что уже запущено. Знаю, можно по другому, но не вижу смысла...не суть... Предположил, что может кто то еще сессию стартует через @, сгрепил. Нашел модуль, отключил/закоментировал свой костыль с сессиями, без результата. Сгрепил по системной папке, session_start() юзается только в классе Session_Native В базовом контролере вырубаю Session::$default = 'cookie'; И все запустилось. Пока не нашел следов, почему оно не работало через куку. В другом проекте работает, правда на родном авторизаторе. Хотя я ни чего такого и не делал... Может сейчас появились идею у кого? |
Автор: | WinterSilence [ 18 дек 2014, 15:49 ] |
Заголовок сообщения: | Re: Теряется авторизация |
@borodatych естественно я могу ошибаться - по этим огрызкам сложно что-то понять. лучше залей все вышеописанные файлы на гитхаб например и напиши что ты пытаешься сделать в итоге. Код:
а зачем это? На мой взгляд хранить сессии в куки или куки в сессиях это изврат. |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |