Я использую токен Laravel и JWT для разработки внутренних API-интерфейсов для разработчиков внешнего интерфейса. Я помещаю столбец состояния (активный, неактивный) в базу данных. Если статус пользователя неактивен, ограничьте его использование приложения.
часть функции входа в систему, которая дает токен активному пользователю:
if ($user->status == 'active') {
return response()->json(
['data' => ['token' => $token, 'message' => 'Login successfully.', 'status' => true, 'user' => $user]],
200
);
}
if ($user->status == 'inactive') {
return response()->json(
['data' => ['token' => '', 'message' => 'User is inactive.', 'status' => false]],
200
);
}
мое промежуточное ПО:
public function handle($request, Closure $next)
{
try {
$user = JWTAuth::parseToken()->authenticate();
} catch (Exception $e) {
if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException) {
return response()->json(['data' => ['message' => 'Token is Invalid.', 'status' => false]],
200);
} else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException) {
return response()->json(['data' => ['message' => 'Token is Expired.', 'status' => false]], 200);
} else {
return response()->json(['data' => ['message' => 'Authorization Token not found.', 'status' => false]], 200);
}
}
return $next($request);
}