我正在使用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值 - 没有区别。我很难过。
答案 0 :(得分:2)
Holy Headslap,蝙蝠侠。
所以这就是问题所在。我在数据库中存储会话。某处,某个(显然)自动化流程将cake_sessions.data
字段更改为cake_sessions.DATA
。虽然我在调试时已经查看了数千次数据库,但我只是注意到了这一点。
问题解决了。
故事的道德:开发人员,不要让你的数据库字段名称长大并改变案例。
答案 1 :(得分:1)
您还需要将“会话”设置为组件。