我尝试使用ajax登录和注册更新laravel auth。我有一个登录表单,它将ajax POST请求发送到/ login路径。除了用户成功登录的情况外,一切正常 - 在这种情况下,laravel返回重定向到/ home页面。
是否可以防止此行为?我希望获得类似{message:"User signed in",redirect_to:"/home"}
的内容,而不是实际的重定向。
现在我只是将sendLoginResponse方法从Illuminate/Foundation/Auth/AuthenticatesUsers
复制到Auth/LoginController
并重写如下:
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
//return $this->authenticated($request, $this->guard()->user())
// ?: redirect()->intended($this->redirectPath());
return $this->authenticated($request, $this->guard()->user())
?: ["message"=>"User successfully logged in"];
}
我不喜欢它。有更自然的方式吗?是否可以强制laravel返回redirect_to url而不是为每个ajax请求进行实际的重定向?