0

/loginユーザーがすでにログインしている場合、ユーザーのアクセスが制限されているlaravel 5.2アプリがあります。これで、「他のアプリからアプリにログインする(laravelではない)」機能が実装されました。現在の問題は、アプリをリクエストしてログインを取得するために ajax 呼び出しを行うときに、リクエストの前にユーザーがログインしていない場合、laravel 5.2 が完全なレスポンスを返すことです。しかし、ログイン後、再度ログインのために app request を要求すると、laravel app は応答でホームページのビューを返します。ログイン要求を処理する前に、カスタマイズしてユーザーをログアウトさせたい。私はインターネットとデバッグに多くの時間を費やしました。しかし、ログインページの制限を求めている人はどこにでもいます。しかし、私の要件は、post メソッドでリクエストを許可し、レスポンスをカスタマイズすることです/login. 誰かが答えを知っていれば、それはありがたいです。

アプリをリクエストするコードは次のとおりです

$.ajax({
    type: 'POST',
    url: 'http://192.168.1.78/my-app/login',
    data: {
        st_email: 'xyz@xyz.com',
        st_password: 'myPass'
    }
}).success(function (response) {
    // getting view in response if user is already restrict
}).error(function () {
    console.log('error');
});
4

1 に答える 1

1

app/Http/Middleware/RedirectIfAuthenticated には、次の関数があります。

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

        return $next($request);
    }

これを削除すると、アプリが停止して /login からリダイレクトされます。この関数を次のように編集することもできます。

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

        return $next($request);
    }

この関数は、リクエストが post メソッドではない場合にのみリダイレクトします

于 2016-10-11T10:52:03.457 に答える