Я создал API, который проверяет мой токен JWT Auth и возвращает пользователя с его типом модуля.Но теперь я хочу проверить, что этот токен только для этого модуля, который является Chiro или PT.В настоящее время мой контроллер выглядит следующим образом:
class AuthenticateUserController extends Controller
{
public function getAuthenticatedUser(Request $request)
{
$modules = DB::table('modules')
->join('user_access_modules', 'modules.id', 'user_access_modules.module_id')
->where('user_access_modules.user_id', Auth::user()->id)
->select('modules.type','modules.id')->first();
try {
if (! $user = \Tymon\JWTAuth\Facades\JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['token_expired'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json(['token_invalid'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json(['token_absent'], $e->getStatusCode());
}
$status = true;
return response()->json(compact('status','user','modules'));
}
}
Этот API-интерфейс проверяет токен, который я использую почтальоном, и передаю токен на предъявителя в свои заголовки, и мой ответ на этот API-интерфейс ниже.
{
"status": true,
"user": {
"id": 10,
"email": "shahzadshah11323@hotmail.com",
"status": 0,
"created_at": "2019-04-29 11:07:46",
"updated_at": "2019-04-29 11:07:46",
"created_by": null,
"updated_by": null,
"is_super_admin": 0
},
"modules": {
"type": "Chiro",
"id": 6
}
}
Теперь здесь я хочу проверить, что этот токен предназначен только для типа Chiro, никакой другой модуль не может получить доступ к этому токену, как я могу поставить это условие на свой токен, в настоящее время этот токен можно использовать с любым модулем, но я хочу аутентифицировать токен с определенным модулемвведите.
Я отправляю запрос в теле почтальона следующим образом:
{
"type": "Chiro"
}
, чтобы проверить, что этот токен действителен только для этого модуля: Как я могу реализовать этот сценарий и решить эту проблему?Ваша помощь будет оценена.