В настоящее время у меня есть 2 сервера: 1 сервер Laravel / сервер API, 1 сервер внешнего интерфейса, на котором работает Vue SPA.
Проблема, с которой я столкнулся, - это проблема аутентификации. Из моего приложения Vue я могу успешно войти в систему через аутентификацию API, используя предоставление пароля.
Запрос axios попадет в конечную точку аутентификации, которая:
$response = $http->post(env('APP_URL').'/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => $client->id,
'client_secret' => $client->secret,
'username' => $credentials['email'],
'password' => $credentials['password'],
'scope' => '',
],
]);
Взамен я получаю токены, которые храню в localStorage. На более позднем этапе в моем приложении Vue я пытаюсь сделать еще один запрос API для этого вошедшего в систему пользователя, используя токены, которые я получил от предоставления пароля.
let config = {
headers: {'Authorization': "Bearer " + state.tokens.access_token}
};
window.axios.post('/purchases', {
form: state.form,
}, config)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error.response);
});
Но я получаю ошибку 401
Ошибка: «Не аутентифицирован».
Я предполагал, что промежуточное ПО auth:api
будет анализировать токен доступа для пользователя, но, похоже, это не так.
Как я могу проанализировать пользователя, который после срабатывания моей /purchases
конечной точки может получить доступ к пользователю $request->user()
?