Есть большая вероятность, что я здесь что-то не так. Это то, чего я пытаюсь достичь и что у меня уже есть.
ЧТО ПРОИСХОДИТ
Я пытаюсь использовать свой собственный Laravel (7) API из моего VueJs составная часть. Для этого, я полагаю, мне придется использовать Laravel Passport.
Я вхожу в приложение через веб-форму (стандартная Laravel встроенная форма входа). Когда я go перехожу на определенную страницу после входа в систему, я вижу, что мой vueJS компонент загружается правильно. Он делает несколько вызовов API к разным конечным точкам для сбора некоторых данных. Конечные точки, которые я оставил без авторизации (для тестирования), в порядке. Те, что в:
Route::middleware(['auth:api'])->group(function() {
// more routes...
Route::get('/secret-endpoint/', 'Api\MyController@view');
});
, возвращаются как 401
.
Теперь я посмотрел на Laravel Паспортная документация и я успешно установил паспорт в свою систему.
Я думаю, что это правильно, потому что, когда я попадаю в конечную точку, предоставленную паспортом http://localhost:8080/oauth/token
с учетными данными пользователя, которые существуют в моей базе данных, я делаю это получить токен.
Я также могу использовать этот токен и передать его в Authorization Bearer
в Postman на другую конечную точку, которая защищена промежуточным программным обеспечением 'auth:api'
, и если токен верен, я получаю доступ, а если нет, нет доступа.
Пока все хорошо.
В документации по паспорту упоминается, что я должен добавить это:
'web' => [
// Other middleware...
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
В моем app/Http/Kernel.php
- это тоже сделано . Это должно заставить Laravel прикрепить laravel_token
cook ie к исходящим запросам.
Действительно, я вижу это в запросе:
Однако запрос возвращается как 401
.
Подводя итог:
ДРУГАЯ ИНФОРМАЦИЯ
- PHP 7,4
- LARAVEL 7
- DOCKER
- APACHE
Я потратил на это второй день и не совсем уверен, что не так и где начать искать.
Я ПРАВ?
Если я правильно понимаю, когда прикрепляю это * 1 083 * для запроса, который идет по маршруту с промежуточным программным обеспечением auth:api
, он должен быть автоматически выбран и разрешен до go через?
Если нет, что должно произойти?
Я пропал шаг?
Может я все неправильно понял?
Может надо что-то добавить в конфиг? (не считая базовых c настроек, как это сделано)
PS
Я просмотрел все, что смог найти в StackOverflow, но у меня ничего не сработало (может быть хотя моя вина). Поэтому я провел много исследований, прежде чем спрашивать.
Я не регистрировал Vue компонентов из паспорта, так как я не заинтересован в управлении клиентами в моем приложении. Я просто хочу защитить свой API.
EDIT:
Я думаю, что одним из возможных решений может быть просто создание передней и задней части приложение полностью отдельно. Судя по тому, что делают люди, это solid решение.