Laravel 使用 Ajax 进行身份验证

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';
    }

就是这样。 希望这有帮助。