Как декодировать информацию пользователя из токена JWT Auth - используя laravel - PullRequest
0 голосов
/ 12 апреля 2019

Я получаю информацию о пользователе из токена аутентификации JWT следующим образом:

{
  "user": {
    "id": 5,
    "email": "shahzad@chiro.com",
    "status": 0,
    "created_at": "2019-04-12 07:33:28",
    "updated_at": "2019-04-12 07:33:28",
  }
}  

и мой контроллер:

public function getAuthenticatedUser()
{
    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());

    }

    return response()->json(compact('user'));
}

но я также хочу получить дополнительную информацию, например, из какого модуля идет этот токен пользователя, я хочу правильно проверить этот токен, в настоящее время у меня есть различные модули, такие как Chiro, PT и ACCU. Когда я вхожу в систему, я получаю эту информацию в формате JSON.

{
"status": true,
"message": "Login successfully",
"data": {
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3RcL2ZlYXR1cmUtbWFzdGVyXC9hcGlcL2ZkX2xvZ2luIiwiaWF0IjoxNTU1MDYzMTAzLCJleHAiOjE1ODY1OTkxMDMsIm5iZiI6MTU1NTA2MzEwMywianRpIjoiMFMxU3EzOVJRbVhYZFB6NCIsInN1YiI6NywicHJ2IjoiNGFjMDVjMGY4YWMwOGYzNjRjYjRkMDNmYjhlMWY2MzFmZWMzMjJlOCIsImFjY2Vzc19tb2R1bGUiOiJjaGlybyIsIm1vZHVsZV9pZCI6NiwidXNlcl9pZCI6N30.pJyWSlvHfJhn5bHk4_By-cAt5jzy15QgtlhGdyerriQ",
    "userData": {
        "id": 7,
        "email": "shahzad12@chiro.com",
        "status": 0,
        "created_at": "2019-04-12 09:58:01",
        "updated_at": "2019-04-12 09:58:01",
        "created_by": null,
        "updated_by": null,
        "is_super_admin": null,
        "basicInfo": null
    },
    "userInfo": {
        "id": 103,
        "user_id": 7,
        "clinic_name": "Health care",
        "first_name": "Dr wick",
        "middle_name": "john",
        "last_name": "David",
        "cell_phone_no": "111-111-1111",
        "phone_extension": 877,
        "doc_email": "nasir123@gmail.com",

    },
    "module": {
        "id": 6,
        "type": "Chiro",
        "slug": "chiro"
    },

Когда я вхожу в этот ответ, говорят, что это пользователь из модуля Chiro, и когда я проверяю этот токен, используя мой метод, которым я поделился, он возвращает мне только электронную почту пользователя, а не модуль. Как я могу справиться с этой ситуацией, когда я проверяю токен, я также должен получить модуль? Ваша помощь будет высоко оценена.

...