环境: php 5.4.45 CakePhp 3.1.11 Debian 7
问题 登录并不总是有效。提交后,它返回相同的登录页面,没有错误。关闭并重新启动浏览器后,登录按预期工作。 谷歌Chrome浏览器似乎存在问题。 一些客户端(在Mac和谷歌浏览器上)即使在关闭和重新启动后也无法登录。在同一台机器上它可以与Safari和FireFox一起使用。
在我的测试服务器(Debian 8,php 5.6,Cake 3.3)上,我从未遇到过这个问题。但不仅如此,由于它是一个测试服务器,它并没有在很多机器上使用。
UserControler 登录
public function login()
{
$session = $this->request->session();
$session->destroy();
$session->renew();
Cache::clear(false);
$this->viewBuilder()->layout('ID_start');
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$newtime = date("Ymd|H:i:s");
$this->Auth->setUser($user);
$this->loadModel('Teams');
$team = $this->Teams->get($this->Auth->user('id'));
$team['tijd'] = $newtime;
$this->Teams->save($team);
$enter = hash('md2', $newtime);
$session_id = session_id();
$session->write('naam', $team['naam']);
$session->write('initialen', $team['initialen']);
$session->write('vol_naam', $team['vol_naam']);
$session->write('team_ID', $team['id']);
$session->write('pass', md5($team['pass']));
$session->write('code', $team['code']);
$session->write('enter', $enter);
$session->write('session', $session_id);
return $this->redirect(['controller' => 'admins', 'action' => 'start']);
}
$this->Flash->error(__('Invalid username or password, try again'));
}
}
enter code here
正如您所看到的,我尝试在开始之前杀死所有可能的现有会话并缓存。
所以我的问题是:这种行为是环境的结果吗?我应该更新它以便修复它吗? Chrome可以做什么来制作这个登录故事? 或者我犯了一些我不知道的错误。