Настройка ответа токена - PullRequest
0 голосов
/ 02 ноября 2019

Мой текущий ответ на вход в систему такой:

{
    "token_type": "Bearer",
    "expires_in": 31536000,
    "access_token": "eyJ0eWq4Pt2B7M8W5zWwepDNpWqL0FOzdA8sPNiPhfxJcaktCq7GqQJDNLfPCuN5_Cl4",
    "refresh_token": "def50200278e5e6e658f2149489a6d1578ce4cdef1abb80e21df5efa4bbbc7003840df34768a091a57e88c0"
}

Но мне нужен этот ответ как JSON,

{  
   "success":"true",
   "message":"Login Successful",
   "status":"200",
   "data":
   {  
     "token_type": "Bearer",
     "expires_in": 31536000,
     "access_token": "eyJ0eWq4Pt2B7M8W5zWwepDNpWqL0FOzdA8sPNiPhfxJcaktCq7GqQJDNLfPCuN5_Cl4",
     "refresh_token": "def50200278e5e6e658f2149489a6d1578ce4cdef1abb80e21df5efa4bbbc7003840df34768a091a57e88c0"
   }
}

1 Ответ

0 голосов
/ 06 ноября 2019

Предположим, у вас есть контроллер входа, метод будет разработан таким образом.

Чтобы вернуть ответ, как вы сказали, используйте код ниже

public static function LoginUser(Request $request) {
    $http = new guzzleclient;

    $response = $http->post(env('APP_URL').'/oauth/token', [
        'form_params' => [
            'grant_type' => 'password',
            'client_id' => env('CLIENT_ID'),
            'client_secret' => env('CLIENT_SECRET'),
            'username' => $request->email,
            'password' => $request->password,
            'scope' => '*',    
        ],
    ]); 

    $response = json_decode((string) $response->getBody(), true);
    $final_resp = [
        'success' => "true", 
        'message' => "Login Successful", 
        'data' => $response, 
        'status' => "200"
    ];

    return response()->json($final_resp, 200);
}

Обратите внимание на этоВ примере используется метод предоставления пароля.

...