如何仅检查(状态)活动用户才能登录- JWT Auth -Laravel
How to check only (status)active user can able to login- JWT Auth -Laravel
我已经借助这个 https://www.avyatech.com/rest-api-with-laravel-8-using-jwt-token/
实现了 JWT 令牌身份验证
第 11 步。准备 api 控制器操作 -> authenticate()
现在,系统管理员允许用户记录标记为 active/Inactive(状态)并且 不活动 用户不应该能够登录系统
登录逻辑:
public function authenticate(UserRequest $request)
{
$credentials = $request->only('email', 'password');
$request->validated();
//Request is validated
try {
if (!$token = JWTAuth::attempt($credentials)) {
$message = 'Login credentials are invalid.';
$data = [];
return response()->failed($message, $data);
}
} catch (JWTException $e) {
return $credentials;
return response()->json([
'status' => false,
'message' => 'Could not create token.',
'error' => $e
], 500);
}
//Token created, return with success response and jwt token
$message = 'Successfully login.';
$data = [
'token' => $token
];
return response()->success($message, $data);
}
Table:
User
---------------
-id
-username
-email
-password
-status // active/inactive
我需要包括什么步骤来实现这个逻辑?非活动用户不得登录系统
非常感谢!
获取用户并在返回响应之前抛出错误:
public function authenticate(UserRequest $request)
{
// ...
$user = User::where('email', $credentials['email'])->first();
if($user === null || $user->status !== 'active') {
$message = 'Your account is not active.';
$data = [];
return response()->failed($message, $data);
}
$message = 'Successfully login.';
$data = [
'token' => $token
];
return response()->success($message, $data);
}
我已经借助这个 https://www.avyatech.com/rest-api-with-laravel-8-using-jwt-token/
实现了 JWT 令牌身份验证第 11 步。准备 api 控制器操作 -> authenticate()
现在,系统管理员允许用户记录标记为 active/Inactive(状态)并且 不活动 用户不应该能够登录系统
登录逻辑:
public function authenticate(UserRequest $request)
{
$credentials = $request->only('email', 'password');
$request->validated();
//Request is validated
try {
if (!$token = JWTAuth::attempt($credentials)) {
$message = 'Login credentials are invalid.';
$data = [];
return response()->failed($message, $data);
}
} catch (JWTException $e) {
return $credentials;
return response()->json([
'status' => false,
'message' => 'Could not create token.',
'error' => $e
], 500);
}
//Token created, return with success response and jwt token
$message = 'Successfully login.';
$data = [
'token' => $token
];
return response()->success($message, $data);
}
Table:
User
---------------
-id
-username
-email
-password
-status // active/inactive
我需要包括什么步骤来实现这个逻辑?非活动用户不得登录系统
非常感谢!
获取用户并在返回响应之前抛出错误:
public function authenticate(UserRequest $request)
{
// ...
$user = User::where('email', $credentials['email'])->first();
if($user === null || $user->status !== 'active') {
$message = 'Your account is not active.';
$data = [];
return response()->failed($message, $data);
}
$message = 'Successfully login.';
$data = [
'token' => $token
];
return response()->success($message, $data);
}