以下内容在验证后处理Laravel-Application上的重定向:
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
//dd(redirect()->intended());
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
这在我的本地计算机上工作正常,但在运行Elastic Beanstalk的生产服务器上没有。
我的代码中的dd()
在两个环境中都显示了正确的路径,但在生产时,它会重定向到网址/
。为什么呢?
答案 0 :(得分:1)
可能是因为您使用负载均衡的Amazon服务器。 负载均衡以这种方式工作:客户端使用HTTPS连接到负载平衡域,但负载均衡器本身将 HTTP 中的请求转发到实际服务器。这意味着服务器始终将请求的URL视为HTTP,而不是HTTPS。
答案 1 :(得分:0)
您可以创建一个帮助函数,以便从会话中获取目标网址
function intendedUrl($default = null)
{
$default = $default ?: route('pages.home');//default route
return session()->pull('url.intended', $default);
}