Когда пользователь щелкает ссылку, требующую входа в систему, мы в настоящее время перенаправляем их на страницу входа, но мы теряем предполагаемый URL. Как лучше всего учесть этот URL и перенаправить пользователя на запрошенную страницу после входа в систему?
Мы используем последнюю стабильную версию Cake. Спасибо.
- Редактировать -
Это настроено так
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
// $this->Auth->autoRedirect = false;
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'dashboard');
функция входа в users_controller
function login() {
Debugger::log("Redirect Session Key:" . $this->Session->read('Auth.redirect'), $level = 7);
$ref = $this->referer();
Debugger::log("referer():" . $ref, $level = 7);
}
Когда я перехожу на неавторизованную страницу, например localhost / mysite / unauthorized, я перенаправляюсь на localhost / mysite / users / login. В моем файле debug.log ключ сеанса перенаправления распечатывается как users / dashboard, что подразумевает отсутствие действительного реферера. Чтобы проверить это предположение, я также распечатываю реферер в функции входа в систему, которая фактически возвращает «/», что является значением по умолчанию в случае отсутствия информации о реферере от запрашивающей стороны, которую я считаю.