登录后有没有办法让我重定向到引荐网址?
我的配置中有这个:
'redirect_strategy' => [
'redirect_when_connected' => false,
'redirect_to_route_connected' => 'home',
'redirect_to_route_disconnected' => 'login',
'append_previous_uri' => true,
'previous_uri_query_key' => 'redirectTo'
],
previous_uri_query_key当用户访问他们没有权限的页面时,将附加唯一的。一个例子是某人正在浏览然后登录,但想从他们离开的地方继续浏览。
我曾尝试$_SERVER['HTTP_REFERER']在登录操作上使用,但我正在运行该操作来加载页面,然后一旦他们发布了他们的凭据,它就会将它们登录。这样做,服务器现在认为引荐来源是登录页面,只需要你回到那里。
可能有一个简单的解决方案,但我目前没有看到它。
******************杰里-里格******************
所以这就是我暂时使用的。我不会把这个作为答案,因为我想要一个更好的解决方案。如果我有时间回去解决这个问题,我会发布我的解决方案。但现在这是我正在使用的。
if (null === $this->params()->fromQuery('redirect') && $this->shouldAddRedirect($request->isPost()) && !$request->isPost()) {
return $this->redirect()->toUrl('sign-up?redirect=' . $_SERVER['HTTP_REFERER']);
}
我调用的函数shouldAddRedirect看起来像这样
private $no_redirect = array(
'/login',
'/sign-up'
);
protected function shouldAddRedirect($isPost) {
if (isset($_SERVER['HTTP_REFERER'])){
$referer_url = parse_url($_SERVER['HTTP_REFERER']);
if (isset($referer_url['query']) && count($referer_url['query'])) {
return false;
}
if (isset($referer_url['path']) && in_array($referer_url['path'], $this->no_redirect)) {
return false;
}
} else if ($isPost) {
return false;
}
return true;
}