我有一個Auth.Attempt事件處理程序類,它檢測用戶的登錄嘗試以決定鎖定用戶的帳戶。 但是,當我嘗試將用戶重定向到帶有閃存消息的登錄頁面時,發現重定向不起作用,它仍在繼續執行下一步。 我想中斷事件中的過程並給出我的自定義警告消息。誰能幫我嗎?非常感謝。Laravel Redirect在Event handler/listener中不起作用
我的事件處理程序:
namespace MyApp\Handlers\Security;
use DB;
use Session;
use Redirect;
class LoginHandler
{
/**
* Maximum attempts
* If user tries to login but failed more than this number, User account will be locked
*
* @var integer
*/
private $max_attemtps;
/**
* Maximum attempts per IP
* If an IP/Device tries to login but failed more than this number, the IP will be blocked
*
* @var integer
*/
private $ip_max_attempts;
public function __construct()
{
$this->max_attempts = 10;
$this->ip_max_attempts = 5;
}
public function onLoginAttempt($data)
{
//detection process.......
// if login attempts more than max attempts
return Redirect::to('/')->with('message', 'Your account has been locked.');
}
}
現在我這樣做的方法是象下面這樣:
Session::flash('message', 'Your account has been locked.');
header('Location: '.URL::to('/'));
它的工作原理,但我不知道這是否是做完美的方式。
爲什麼'使用重定向;'? –
因爲我不想處理認證。我嘗試在驗證用戶名和密碼之前驗證用戶登錄嘗試。如果用戶的帳戶被鎖定或IP被阻止,則該過程將被終止並用閃光消息重定向到主頁。 – Jonathan
不,我的意思是'使用Redirect'這是一個有效的命名空間? –