CakePHP登录将用户重定向回登录页面(IE11和Edge)

时间:2016-04-16 07:39:26

标签: authentication cakephp login

我有一个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,问题都是一样的。

0 个答案:

没有答案