7

Authの足場を使用しておりLaravel 5.3、 のルートを変更しましたauth。したがって、 and の代わりに/loginand/registerを使用/signin/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.phplogin

これはアプリの一部であるため、カスタマイズして別の場所にリダイレクトできない理由はありません。

于 2016-08-24T04:40:50.903 に答える
0

JS を使用して app.blade.php でこれを試すことができます。

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