我有一个CakePHP应用程序(v 2.7),它包含一个使用Auth组件的相当标准的登录元素。这适用于大多数用户,但是,少数用户报告他们无法登录 - 当他们尝试这样做时,他们会被重定向回登录页面,没有错误消息。
我已经建立了一些登录到网站以检查发生了什么,似乎登录正常(我的登录操作中的所有内容都按照需要记录),直到他们点击代码的重定向部分,然后它们不会重定向到预期的页面。
所有遇到问题的用户似乎都是通过同一公司网络访问该网站的 - 不确定这些是否相关!但是,所有都启用了cookie(如果没有启用,我添加了一个显示错误的脚本)。
我已经在IE11,Edge 11,12 + 13(用户似乎遇到问题的浏览器)中测试了该网站,但无论浏览器的安全设置如何,都无法复制该问题。
此问题可能与用户从中访问网站的网络设置有关吗?是否有任何设置我应该尝试让他们检查?对不起 - 我对这个很难过,因为我无法复制它,任何指向我应该问的问题都会有用。
我的代码的相关部分如下。如果有任何有用的信息,请告诉我。
提前感谢您的帮助。
在AppController(组件)
中public $components = array(
'Session',
'Cookie',
'Security' => array(
'csrfExpires' => '+300 minutes',
'csrfUseOnce' => false
),
'Auth' => array(
'loginAction' => array('controller' => 'users', 'action' => 'login', 'admin' => false),
'loginRedirect' => array('controller' => 'course_sections', 'action' => 'index', 'admin' => false),
'logoutRedirect' => array('controller' => 'website_pages', 'action' => 'view', 'home', 'admin' => false),
'authorize' => array('Controller'),
'authenticate' => array(
'all' => array(
'scope' => array('User.is_archived' => 0, 'Client.is_active' => 1),
'contain' => array('UserGroup'),
'passwordHasher' => 'Blowfish'
),
'Form' => array(
'fields' => array(
'username' => 'email',
'password' => 'password'
)
)
),
'Acl'
);
在UsersController中
public function login(){
// If user has submitted the form
if ($this->request->is(array('post', 'put'))) {
if ($this->Auth->login()) {
$this->log('Successfully logged in. Cookie Status: ' . $this->request->data['User']['cookies'], $this->Auth->user('public_id'));
// Redirect
return $this->redirect($this->Auth->redirectUrl());
} else {
// Log failed login attempt
$this->log('Unsusccessful login attempt using email: ' . $this->request->data['User']['email'], 'nosuccess');
$this->Session->setFlash($this->FlashMessage->translateFlash('invalid_login', false));
}
}
}
我正在使用数据库支持的会话,但无论是使用这些还是PHP,问题都是一样的。