【问题标题】:Redirect if authenticated in Laravel 5.3如果在 Laravel 5.3 中通过身份验证,则重定向
【发布时间】:2016-12-30 17:33:06
【问题描述】:

我在Laravel 5.3 中使用Auth 脚手架,并更改了auth 的路线。所以我使用/signin/signup 代替/login/register

Laravel 5.2 中,我们默认在auth 中间件中有这个,

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->guest()) {
        if ($request->ajax() || $request->wantsJson()) {
            return response('Unauthorized.', 401);
        }

        return redirect()->guest('login');
    }

    return $next($request);
}

如果用户没有登录,这将重定向到 login 路由。在 Laravel 5.3 我们有这个,

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

    return $next($request);
}

这会将已登录的用户重定向到默认路由/。所以他们在 5.3 中改变了它。我们没有定义访客去哪里,而是定义登录用户去哪里。

我的问题是,我将如何本地到 Laravel 5.3 更改客人去?

因为目前,尝试访问受中间件保护的站点的人会自动以/login 路由结束。我想将其更改为 /signin,但我找不到任何地方可以自定义此行为。

有什么想法吗?

【问题讨论】:

    标签: laravel authentication laravel-5.3 laravel-middleware


    【解决方案1】:

    你可以在 app.blade.php 中用 JS 试试这个:

    @if (Auth::guest())
    <script type="text/javascript"> window.location = "{{url('/login')}}";    </script>
    @endif
    

    【讨论】:

      【解决方案2】:

      如果客人离开,我将如何“原生”更改为 Laravel 5.3?

      Looks likeapp/Exceptions/Handler.php 中有一个新的unauthenticated() 方法,它处理未经身份验证的用户并重定向到login

      由于这是您应用的一部分,您没有理由不能自定义它以重定向到其他地方。

      【讨论】:

      • 谢谢!上帝……除了那里,我到处找。
      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 2023-01-20
      • 2016-01-25
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 2017-01-25
      • 2018-02-22
      相关资源
      最近更新 更多