7

我正在使用Auth脚手架,Laravel 5.3并且更改了auth. 所以代替/loginand/register我使用/signinand /signup

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但我找不到任何地方来自定义此行为。

有任何想法吗?

4

2 回答 2

6

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

看起来有一种新unauthenticated()方法app/Exceptions/Handler.php可以处理未经身份验证的用户并重定向到login.

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

于 2016-08-24T04:40:50.903 回答
0

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

@if (Auth::guest())
<script type="text/javascript"> window.location = "{{url('/login')}}";    </script>
@endif
于 2017-03-28T15:47:23.847 回答