Php Laravel 5.4设置和增加自定义会话变量
我是拉雷维尔的新手。我正在尝试使用会话设置失败登录尝试的计数器。然而,我无法使它工作。这是我的UserController,负责注册、登录和注销。我想有一个全局变量,我可以从登录表单访问它,如果有两个以上的登录失败,则强制用户使用CAPTCHAPhp Laravel 5.4设置和增加自定义会话变量,php,session,laravel-5,Php,Session,Laravel 5,我是拉雷维尔的新手。我正在尝试使用会话设置失败登录尝试的计数器。然而,我无法使它工作。这是我的UserController,负责注册、登录和注销。我想有一个全局变量,我可以从登录表单访问它,如果有两个以上的登录失败,则强制用户使用CAPTCHA public function postSignIn(Request $request) { $failedAttempt = Session::get('FailedAttempts'); if(!isset($failedAttempt)
public function postSignIn(Request $request)
{
$failedAttempt = Session::get('FailedAttempts');
if(!isset($failedAttempt)) $failedAttempt = 0;
$this->validate($request, [
'email' => 'required',
'password' => 'required'
]);
if (Auth::attempt(['email' => $request['email'], 'password' =>
$request['password'], 'active' => 1])) {
return redirect()->route('dashboard');
} else {
$failedAttempt++;
Session::put('FailedAttempts', $failedAttempt);
dd("Counter: " . $failedAttempt); //<- Always 1!!!
}
public function postSignIn(请求$Request)
{
$FailedAttempts=Session::get('FailedAttempts');
如果(!isset($failedAttempt))$failedAttempt=0;
$this->validate$请求[
'电子邮件'=>'必需',
'密码'=>'必需'
]);
如果(身份验证::尝试(['email'=>$request['email'],'password'=>
$request['password'],'active'=>1])){
return redirect()->route('dashboard');
}否则{
$failedAttempt++;
会话::put('FailedAttempts',$FailedAttempts);
dd(“计数器:.$failedAttempt);//我确信您在某些时候犯了错误。请尝试此操作以请求向会话插入/放置值
https://laracasts.com/discuss/channels/eloquent/how-to-set-a-session-variable?page=1
非持久会话的秘密我仍然不知道,但我的解决方案是使用session::save()
:
我在这里找到了答案:
有些人将此归咎于Nginx+phpfpm
Session::put('FailedAttempts', $failedAttempt);
Session::save();