2015-12-24 4 views
0

Я работаю над формой входа, в которой используется ajax, и я не могу настроить дросселирование входа. Функция ThrottlesLogins перенаправляет куда-то, но мне это не нужно. Как я могу вернуть количество секунд, когда пользователь терпит неудачу? n раз? Контроллер:Вход в дроссели в laravel 5.1 с ajax

<?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); 
     } 
    } 
} 

routes.php

/* Login */ 
Route::group(array('prefix' => 'login', 'namespace' => 'Login', 'middleware' => 'guest'), function() { 
    Route::get('/', '[email protected]'); 
    Route::post('/', '[email protected]'); 
}); 

ответ

3

Вы можете изменить:

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

в

if ($throttles && $this->hasTooManyLoginAttempts($request)) { 
    if ($request->ajax()) { 
     return response()->json(['lockout_time' => $this->lockoutTime()]); 
    } 
    else { 
     return $this->sendLockoutResponse($request); 
    } 
}