CakePHP会话在每个请求时刷新

时间:2013-06-07 14:42:49

标签: cakephp cakephp-2.3

我正在使用CakePHP 2.3开发我的第一个应用程序而且我遇到了一个我可以登录的问题(没有身份验证错误),但是我的会话并没有停留,所以我被发送回登录页面调用Auth->redirect()时我确定我只是错过了一个设置或者配置稍微错误,但我找不到它。

# core.php
# session record is written the the database, but the same record's id changes w/ every request
Configure::write('Session', array(
  'defaults' => 'database',
));

Configure::write('Security.level', 'medium');

我尝试调整各种Session.X参数,但没有任何结果。我正在使用bcrypt身份验证,并在AppController中使用以下设置:

'Auth' => array(
  'authenticate' => array(
    'Blowfish' => array(
      'fields' => array( 'username' => 'email' ),
      'scope'  => array( 'active' => '1' )
    ),
  ),
  'authorize' => array( 'Controller' ),
  'loginAction'    => array( 'admin' => false, 'controller' => 'users', 'action' => 'login' ),
  'loginRedirect'  => array( 'admin' => true, 'controller' => 'activities', 'action' => 'index' ),
  'logoutRedirect' => array( 'admin' => false, 'controller' => 'users', 'action' => 'login' ),
),

我错过了什么?

更新

意识到这只发生在我的开发环境中,我比较了我的Cake配置(数据库,核心,引导程序)和php.ini值 - 没有区别。我很难过。

2 个答案:

答案 0 :(得分:2)

Holy Headslap,蝙蝠侠。

所以这就是问题所在。我在数据库中存储会话。某处,某个(显然)自动化流程将cake_sessions.data字段更改为cake_sessions.DATA。虽然我在调试时已经查看了数千次数据库,但我只是注意到了这一点。

问题解决了。

故事的道德:开发人员,不要让你的数据库字段名称长大并改变案例。

答案 1 :(得分:1)

您还需要将“会话”设置为组件。