我使用vue.js 2为前端构建SPA,将Laraval构建为Backend API。 现在,如果用户登录失败超过3次,我会尝试实施验证。
所以我添加了一个列' login_attempts' (int)表示我的用户表。 我的问题是,我不知道 获取 ' login_attempts' 值 {{3在我的laravel后端。
此外,如果进一步验证登录尝试失败/通过,我想增加/重置 值。
// UserController.php
public function signin(Request $request) {
$credentials = $request->only('email', 'password');
$email = $request->input('email');
// Check if login attempts above 3
// Here I need to get the 'login_attempts' value
$loginAttempts = App\User::where('email', $email)->value('login_attempts');
if($loginAttempts >= 3){
// Response: To many attempts
}
try{
// Some JWT Auth validation
}
} catch (JWTException $e) {
// Increase failed login counter
// $attemptedUser-> <--- Here i need to increase the 'login_attempts' for the user with the email of the login request
$attemptedUser->save();
}
// Some more validation and response
}
感谢您的帮助。
答案 0 :(得分:1)
对原始代码进行一些调整
//Here you get the 'login_attempts' value
$loginAttempts = App\User::where('email', $email)->select('login_attempts')->first();
然后在catch()
如下
...
$loginAttempts->login_attempts += 1;
$loginAttempts->save();
这会增加计数。