我已经将我的开发者Kohana服务器设置为使用加密数据库作为默认会话类型。我还将其与Auth结合使用来实现用户身份验证。Kohana 3.2 - 数据库会话在新页面请求中丢失数据
现在我的用户能够正确地进行身份验证,并且会话中存储了身份验证密钥。我还在登录过程中存储了诸如用户的名字和商业名称之类的附加数据。
当我登录功能是准备将用户重定向到用户的仪表板,我能正确地看到所有的数据,当我做$session::instance()->as_array();
(Array ([auth_user] => NRyk6lA8 [businessname] => Dudetown [firstname] => Matt)
)
只要我将用户重定向到另一个页面,$session::instance()->as_array();
为空。
通过抛出Session :: instance()对象,我可以看到Session ID仍然相同。
虽然我看着我的数据库表,但我没有看到任何会话记录被保存,我的会话表是空的。
我bootstrap.php中包含:
Session::$default = 'database';
Cookie::$salt = 'asdfasdf';
Cookie::$expiration = 1209600;
Cookie::$domain = FALSE;
和我session.php文件的配置文件看起来像:
return array(
'database' => array(
'name' => 'auth_user',
'encrypted' => TRUE,
'lifetime' => 24 * 3600,
'group' => 'default',
'table' => 'sessions',
'columns' => array(
'session_id' => 'session_id',
'last_active' => 'last_active',
'contents' => 'contents'
),
'gc' => 500,
),
);
我看着高和低的答案..如果任何人有任何建议,我所有的耳朵!
谢谢!
谢谢思南, 是的,我真的在Kohana论坛看到你的帖子,并实施Cookie :: $ domain = FALSE,但不幸的是它没有工作。 我最初尝试与我的'.domain.tld',但我不知道它是否工作正常,因为我有我的服务器实例安装在子目录中,它仍然给我麻烦。 我将很快部署到转换服务器,以便我可以尽快尝试您的建议。 感谢您的意见,我会回复此主题与我的调查结果 谢谢! – reado 2012-03-23 23:31:21
太棒了!现在我已经将我的加密设置整理出来了,通过正确设置域,我可以使用单个session_id正确地工作。 一切工作正常......谢谢大家!这个技巧帮助我了! – reado 2012-03-24 01:27:51