使用Ajax的Laravel身份验证


Laravel Authentication using Ajax

我在Laravel 5.1中使用ajax调用进行身份验证时遇到了问题。它与csrf令牌相关。任何想法?

经过几个小时的研究,我找到了一个解决方案。以下是步骤,希望对您有所帮助。

我们需要添加这个元标签来在javascript中使用csrf标记。

<meta name="csrf-token" content="{{ csrf_token() }}">

然后,ajax调用身份验证。

$.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
$.post('/auth/login', {name : username, password : pswd}, 
        function(result){
            if (result == 'success'){
                closeDefineUserLocation();
            } else {
                $('.loginErrorText').val('Username or Password was incorrect!');
            }
        });

在由'auth'路由的控制器中,创建一个名为login的函数。

public function login(Request $request){
        $email = $request->input('name');
        $password = $request->input('password');
        if (Auth::attempt(array('email' => $email, 'password' => $password))){
            return 'success';
        }
        return 'failed';
    }

就是这样。