Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Обновление сессии в Базе Данных
http://forum.kohanaframework.su/viewtopic.php?f=31&t=327
Страница 1 из 2

Автор:  Shustoff [ 19 авг 2012, 22:57 ]
Заголовок сообщения:  Обновление сессии в Базе Данных

При авторизации пользователя создается сессия в БД. При каждом запросе к БД, ее lifetime обновляется. Можно как-то сделать lifetime не обновляемым, а статичным? Например 1 час, и чтобы через 1 час пользователя разлогинивало, вне зависимости от его действий.

Автор:  Sergey [ 19 авг 2012, 23:08 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Shustoff писал(а):
При авторизации пользователя создается сессия в БД. При каждом запросе к БД, ее lifetime обновляется. Можно как-то сделать lifetime не обновляемым, а статичным? Например 1 час, и чтобы через 1 час пользователя разлогинивало, вне зависимости от его действий.


Конечно! :)

config/session.php
Код:
<?php defined('SYSPATH') or die('No direct script access.');

return array
(
  'database' => array(
    'group'     => 'default', // configuation group name
    'table'     => 'sessions', // session table name
    'gc'        => 500, // number of requests before gc is invoked
    'name'      => 'session',
    'encrypted' => TRUE, // need a key in config/encrypt.php
    'lifetime'  => DATE::HOUR, // 0 = expire when the browser close,
    'columns'   => array
    (
      'session_id'  => 'session_id', // session identifier
      'last_active' => 'last_active', // timestamp of the last activity
      'contents'    => 'contents' // serialized session data
    ),
  )
);

Автор:  Shustoff [ 19 авг 2012, 23:43 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Ну у меня такой же конфиг, только 'encrypted' => FALSE.
Обновляет lifetime при каждом запросе.
Напишите свой config/encrypt.php?

Автор:  Sergey [ 19 авг 2012, 23:46 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Код:
<?php defined('SYSPATH') or die('No direct script access.');

return array
(
  'default' => array
   (
    'key'     => 'zoMGXkU!0XmB!whYsDVSR', // secret passphrase
    'cipher'  => MCRYPT_RIJNDAEL_128, // encryption mode, one of MCRYPT_MODE_*
    'mode'    => MCRYPT_MODE_NOFB, // encryption cipher, one of the Mcrpyt cipher constants
  ),
);

Автор:  Shustoff [ 19 авг 2012, 23:56 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Все равно обновляет. config/auth.php покажите? :D

Автор:  Sergey [ 20 авг 2012, 00:01 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Код:
<?php defined('SYSPATH') or die('No direct access allowed.');

return array
(
  'driver'       => 'orm',
  'hash_method'  => 'sha256',
  'hash_key'     => 'whYsDVSR~q0',
  'lifetime'     => Date::HOUR * 2,
  'session_type' => Session::$default,
  'session_key'  => 'auth_user',
);

Автор:  Shustoff [ 20 авг 2012, 00:17 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Не помогло(

Автор:  Sergey [ 20 авг 2012, 00:24 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Значит не правильно работаете с сессиями

Автор:  Shustoff [ 20 авг 2012, 00:49 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Нативный драйвер правильно работает, а с БД не хочет.

Автор:  Sergey [ 20 авг 2012, 01:59 ]
Заголовок сообщения:  Re: Обновление сессии в Базе Данных

Попробуйте указать в файле bootstrap.php
Код:
Session::$default = 'database';



Тут всё нормально?
Код:
/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
  'database'        => MODPATH.'database',   // Database access
  'orm'             => MODPATH.'orm',        // Object Relationship Mapping
  ));

Страница 1 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/