Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services. … Middleware system allows you to augment and compose client behavior.Apr 22, 2018
How GuzzleHttp helps?
The idea is to create an endpoint at our back end, that we can make a request to the backend endpoint that contain those secret information that we need to keep secret. This way we can avoid to embed / hard coded all the important information on our javascript request each time..
Install the package on our Laravel.
composer require guzzlehttp/guzzle
Make a route on our api. Let say AuthController
Route::post('/login','Auth\AuthController@login');
Create a controller route.
php artisan make:controller Auth/AuthController
Paste this on our controller
public function login(Request $request) { $http = new \GuzzleHttp\Client; try{ $response = $http->post('http://localhost:8888/test/public/oauth/token',[ 'form_params' => [ 'grant_type' => 'password', 'client_id' => 2, 'client_secret' => 'Fi7uzcm31Luf3LTz5ZevBVL', 'username' => $request->username , 'password' => $request->password , ] ]); return $response->getBody(); } catch (\GuzzleHttp\Exception\BadResponseException $e){ if($e->getCode()==400){ return response()->json('Invalid Request. Please enter a username or a password', $e->getCode()); }else if($e->getCode()==401){ return response()->json('Your credential is incorrect. Please try again.', $e->getCode()); } return response()->json('Something wrong on the server.',$e->getCode()); } }