Получаем сессию Kohana

kohanaИногда приходится использовать Kohana с некими сторонними скриптами, и иногда в этих сторонних скриптах требуется иметь доступ к некоторым данным из сессии.

Например, позарез нужно знать ID пользователя. Очень частая задача, кстати! Можно, конечно, передать user_id через кукисы, но безопасность такого решения сразу падает. Именно сессия, но как?

Задача немного осложняется тем, что код сессии Kohana по-умолчанию передаётся в нестандартном cookie с названием «session», в то время как подавляющее большинство приложений использует «PHPSESSID». Не буду разводить воду, перейду сразу к решениям

1. Если сторонний скрипт не использует своей сессии, то можно просто открыть сессию Kohana. Вот пример совершенно отдельного файла, который может получить user_id пользователя

_object['id'];
    }
}
ini_set('session.use_only_cookies', '0');

// Вот тут бы выбираем нестандартное имя для cookie!!
session_name('session'); 
        
session_start();

// В корректной сессии Kohana $_SESSION['auth_user'] 
// содержит ни много ни мало объект типа Model_Class
echo "

User_id=". (!isset($_SESSION['auth_user']) ? '' : $_SESSION['auth_user']->get_id()) ."

"; ?>

2. Если сторонний скрипт использует свою сессию, то лучше не ломать её, а сделать, чтобы Kohana использовала ту же сессию. Сделать это не так сложно, достаточно в папке application/config создать файл session.php примерно следующего содержания:

 array(
                // PHPSESSID - наиболее распространённое название сессии,
                // но можно подставить и другое
        	'name' => "PHPSESSID", 
        ),
);

Ну а дальше действовать как и в 1-м случае

Получаем сессию Kohana: Один комментарий

  1. Alexey

    Спасибо, помогло.
    Только вот пост нашел случайно, т.к. закладка была на Kohana и естественно этой статьи там не было, т.к. она в Категории | Не по теме

Комментарии запрещены.