下列操作处理身份验证后对我的Laravel应用程序的重定向:
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());
}
这在我的本地机器上工作得很好,但在运行弹性豆柄的生产服务器上却不起作用。
我的代码中的dd()
在这两个环境中都显示了正确的路径,但是在生产时它重定向到url /
。为什么?
发布于 2017-09-20 05:12:06
这可能是因为您使用的是负载均衡的Amazon服务器。负载平衡是这样工作的:客户机使用HTTPS连接到负载平衡域,但是负载均衡器本身将HTTP中的请求转发给实际服务器。这意味着服务器总是将请求的URL看作HTTP,而不是HTTPS。
我画了一幅画来进一步解释我的观点:
发布于 2017-09-19 06:39:05
您可以创建一个帮助函数来从会话中获取预期的url,如
function intendedUrl($default = null)
{
$default = $default ?: route('pages.home');//default route
return session()->pull('url.intended', $default);
}
https://stackoverflow.com/questions/46303092
复制