Концепция, отдельный Laravel Passport в ресурсе и на сервере авторизации

Хорошо, у меня есть небольшой вопрос концепции приложения. Я хочу разделить ресурс и сервер авторизации с паспортом laravel.

У меня есть сервер OAuth2 и классическое приложение laravel с самодельной системой аутентификации без сохранения состояния. У меня есть SPA с Vue.js, который отправляет запрос на вход в интерфейс REST в переднее приложение laravel. Это приложение вызвало GuzzleClient для отправки запроса типа предоставления пароля oauth для получения токена.

    public function login(Request $request, Client $client)
    {
        $url = config('app.auth.server') .'/oauth/token';
        $response = $client->post($url, [
            'form_params' => [
                'grant_type' => 'password',
                'username' => $request->name,
                'password' => $request->password,
                'client_id' => config('auth.oauth.password.client-id'),
                'client_secret' => config('auth.oauth.password.client-secret'),
            ]
        ]);

        if ($response->getStatusCode() !== Response::HTTP_OK) {
            return http_response_code($response->getStatusCode());
        }

        return response()->json($response->getBody()->getContent(), Response::HTTP_OK);
    }

Но если я хочу защитить маршрут API, я не могу использовать защиту auth:api, предоставленную паспортом.

2 решения.

  • Создайте промежуточное программное обеспечение в переднем приложении, которое вызывает настраиваемый маршрут, созданный на сервере авторизации (паспорт laravel), для отправки носителя access_token (отправленного из javascript) и проверки его действительности сервером OAuth.
  • Получите секретный ключ, используемый паспортом для jwt, и позвольте серверу ресурсов проверить действительность токена. (с использованием специальной защиты)

Второе решение, вероятно, лучше. Но что вы думаете ? Есть ли у вас какие-либо идеи или лучшие практики?

Спасибо за чтение.

Есть ли решение?

Tebe 11.08.2020 13:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
1
444
0

Другие вопросы по теме