Вызов маршрута api из задания с внутренним промежуточным программным обеспечением auth: api

Я использую промежуточное программное обеспечение auth: api паспорта laravel для аутентификации моих маршрутов api, для которых требуется токен-носитель для аутентификации. Я использую задания в очереди для множества задач в моем приложении, некоторые из этих заданий обращаются к этим корням api. Ниже приводится пример работы.

public function handle()
{
    $this->data['foreign_id'] = (string) Str::uuid();

    $activity = new Activity($this->data);

    $activity->save();

    ApiClient::postToApi('/feeds/activity', $this->data);
}

Клиентский код api используется для обработки внутренних запросов внутри приложения. Код можно увидеть ниже

public function postToApi($url, $data) {
    $req = Request::create($url, 'POST', $data);

    $req->headers->set('Authorization', 'Bearer '. $this->grabToken());
    $req->headers->set('Accept', 'application/json');


    try {
        $res = app()->handle($req);
        return $res;
    } catch (Exception $e) {
        return "not found";
    }
}

Этот запрос создает запрос с токеном носителя, который генерируется с использованием текущего вошедшего в систему пользователя, чтобы запрос мог быть аутентифицирован.

               $token = $user->createToken('Token Name')->accessToken;

Однако, поскольку этот вызов был отправлен заданием, у меня нет доступа к пользователю сеансов, это означает, что токен-носитель не может быть сгенерирован, и я получаю неаутентифицированное сообщение. Есть ли способ обойти это или это, чтобы я мог обойти промежуточное программное обеспечение при выполнении внутренних запросов? Спасибо.

Почему бы вам не вызвать действие непосредственно из команды вместо вызова API.

N69S 13.12.2018 17:16
Стоит ли изучать 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-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
130
1

Ответы 1

  • Извлеките логику из контроллеров, перенесите ее на другой уровень, используя репозиторий шаблонов (отметьте этот ответ: https://stackoverflow.com/a/53708112/5458355)

  • Вызов логического уровня с его методом в заданиях.

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