Laravel 5.4设置并增加自定义会话变量

时间:2017-06-06 21:25:12

标签: php session laravel-5

我是Laravel的新手。我试图通过使用会话设置失败登录尝试的计数器。但是我无法使其发挥作用。这是我的UserController处理注册,登录和注销。我想要一个全局变量,我可以从登录表单访问它并强制用户在登录失败超过2次时使用CAPTCHA

req.socket.bytesRead

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!!! } 在下次失败的登录尝试时永远不会增加。我已经尝试了$failedAttemptSession::set('FailedAttempts', $failedAttempt);但仍然没有运气

2 个答案:

答案 0 :(得分:0)

我相信你在某些方面犯了错误。试试这个请求将值插入/放入会话

https://laracasts.com/discuss/channels/eloquent/how-to-set-a-session-variable?page=1

答案 1 :(得分:0)

非持久性会话的秘密我还不知道,但我的解决方案是使用Session::save()

Session::put('FailedAttempts', $failedAttempt);
Session::save();

我在这里找到了答案:https://laracasts.com/discuss/channels/general-discussion/l5-sessions-dont-persist

有些人将Nginx + php-fpm归咎于