使用ajax的Laravel5.1中的登录限制

使用ajax的Laravel5.1中的登录限制,laravel,login,laravel-5.1,throttling,Laravel,Login,Laravel 5.1,Throttling,我正在开发一个使用ajax的登录表单,但我无法设置登录限制。 ThrottleLogins特性重定向到某个地方,但我不需要它。当用户密码失败n次时,我如何返回秒数? 控制器: <?php namespace App\Http\Controllers\Login; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Illuminate\Foundati

我正在开发一个使用ajax的登录表单,但我无法设置登录限制。 ThrottleLogins特性重定向到某个地方,但我不需要它。当用户密码失败n次时,我如何返回秒数? 控制器:

<?php

namespace App\Http\Controllers\Login;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Auth;

class LoginController extends Controller
{
    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    public function index()
    {
        if (Auth::check()) return redirect(url('/dashboard'));
        else return view('admin.login');
    }

    public function login(Request $request) {
        $this->validate($request, [
            'username' => 'required', 'password' => 'required',
        ]);

        $credentials = $request->only('username', 'password');

        $throttles = $this->isUsingThrottlesLoginsTrait();

        if ($throttles && $this->hasTooManyLoginAttempts($request)) {
            return $this->sendLockoutResponse($request);
        }

        if (Auth::attempt($credentials, $request->has('remember')))
        {
            return $this->handleUserWasAuthenticated($request, $throttles);
            //return response()->json(['code' => 1, 'redirect' => url('/dashboard')]);
        }
        //else return response()->json(['code' => 0]);

        if ($throttles) {
            $this->incrementLoginAttempts($request);
        }
    }
}
您可以更改:

if ($throttles && $this->hasTooManyLoginAttempts($request)) {
    return $this->sendLockoutResponse($request);
}
进入

您可以更改:

if ($throttles && $this->hasTooManyLoginAttempts($request)) {
    return $this->sendLockoutResponse($request);
}
进入

对于
lockoutTime()
,您可以参考框架的
sendLockoutResponse
实现,例如
$this->limiter()->availableIn($this->throttleKey($request))
对于
lockoutTime()
,您可以参考框架的
sendLockoutResponse
实现,例如
$this->limiter()->availableIn($this->throttleKey($request))
if ($throttles && $this->hasTooManyLoginAttempts($request)) {
    if ($request->ajax()) {
        return response()->json(['lockout_time' => $this->lockoutTime()]);
    }
    else {
       return $this->sendLockoutResponse($request);
    }
}