Я столкнулся с той же проблемой и нашел интересное решение.
Вы можете добавить пользовательскую конечную точку на сервер и сделать запрос оттуда.
Все, что вам нужно сделать, это:
Сначала создайте маршрут в файле api.php Route::post('/login', 'AuthController@login');
Затем создайте функцию AuthController и функцию входа в систему, связанную с этим маршрутом php artisan make:controller AuthController
Наконец, установите Guzzle, HTTP-клиент, который позволит вам сделать запрос из PHP composer require guzzlehttp/guzzle
и выполнить запрос из функции входа в систему
public function login(Request $request)
{
$http = new \GuzzleHttp\Client;
try {
$response = $http->post('http://example.test/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => 2,
'client_secret' => 'your_client_secret',
'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 email or password.', $e->getCode());
}
else if($e->getCode() == 401)
{
return response()->json('Your credentials are incorrect. Please try again', $e->getCode());
}
return response()->json('Something went wrong on the server.', $e->getCode());
}
}
Теперь интерфейсному приложению vue.js нужно отправить запрос на http://example.test/login
с именем пользователя и паролем, чтобы получить обратно access_token
, не зная client_secret
, так как он абстрагирован от серверной части.
Вот видео , которое объясняет это и реализует его очень хорошо.
И презентация о некоторой теории и о том, как вы можете сохранять и отправлять токен из приложения vue.js после получения токена.
Надеюсь, это поможет.