通过Ajax登录到您使用Laravel Auth的同一页面

时间:2017-05-22 16:55:45

标签: php laravel-5

因此,我已了解登录由Auth > LoginController

管理

我需要更改此行以更改导航:

/**
 * Where to redirect users after login.
 *
 * @var string
 */
protected $redirectTo = '/';

但我已尝试使用$_SERVER['HTTP_REFERER'],但此类不接受。

enter image description here

我可以做些什么来管理我尝试做的事情以及为什么我不能在那里使用$ _SERVER?

1 个答案:

答案 0 :(得分:1)

实际上,有些laravel方法可以让您的生活更轻松。 Inisde AuthController,有一个名为authenticated的函数。你可以在里面做到这一点:

protected function authenticated(Request $request, User $user)
{
  if (Auth::check()) {
     return redirect()->intended('your/url');
     //with named route
     return redirect()->intended(route('your.route.name'));
  }else{
     return $next($request);
  }
}

intended()方法将获取用户尝试访问的URL,如果该URL不存在,它将重定向到作为参数给出的路由或URL。

对于Laravel> = 5.3

转到Middleware\RedirectIfAuthenticated并在handle函数上修改它,看起来像这样:

public function handle($request, Closure $next, $guard = null)
{
  if (Auth::guard($guard)->check()) {
      return redirect()->intended('your/url');
  }

return $next($request);
}