登录后重定向到 referrer 不起作用

Redirect to referrer not working after Login

用户登录后,我想将他们重定向回他们来自的地方,但它在 CakePHP 3.5 中无法正常工作。以下是帮助我解决此问题所需的信息。

URL 登录时(会话超时),

http://dev.scys.com/db/admin?redirect=%2Fadmin%2Fstatuses

这是我的身份验证配置,

$this->loadComponent('Auth', [
            'loginAction' => ['controller' => 'Admins', 'action' => 'login'],
            'loginRedirect' => ['controller' => 'Admins', 'action' => 'index'],
            'logoutRedirect' => ['controller' => 'Admins', 'action' => 'login'],
            'unauthorizedRedirect' => $this->referer(),
            'authenticate' => [
                'Form' => [
                    'finder' => 'auth',
                    'userModel' => 'Admins',
                    'fields' => ['username' => 'username', 'password' => 'password']
                ]
            ]

        ]);

并在登录中method/action

$user = $this->Auth->identify();
            if ($user) {
                $this->Auth->setUser($user);
                return $this->redirect($this->Auth->redirectUrl());
            }

More Points

I have also tried $this->redirect($this->request->getQuery('redirect'));

我是否遗漏了任何东西或我必须添加的其他东西来解决这个问题:(

我发现了我的错误, 实际上,我正在使用 URL 之类的动作,

$this->Form->create(NULL, ['url'=> ['controller' => 'Admins', 'action' => 'login'],'style'=>'display: block;');

因此,URL 变成了 "admins/login" 并且重定向查询字符串被删除,这就是问题发生的原因,因为“$this->redirect($this->Auth->redirectUrl());”没有找到任何重定向查询字符串(根据情况 1),因此它使用 $this->Auth->config('loginRedirect');(根据情况 2)。

然后我通过从 表单创建选项参数 .

中删除 URL 键和值来解决它