Приложение Laravel для обработки внутренних запросов - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть приложение laravel, с которым я недавно установил паспорт laravel.Это приложение выполняет серию внутренних вызовов API для извлечения данных.С паспортом laravel каждый раз, когда я делаю эти внутренние вызовы API, он возвращает сообщение об ошибке, не прошедшее проверку подлинности.

Я добавил промежуточное программное обеспечение 'auth: api' в мои маршруты API и хочу иметь доступ к ним изнутри.Нужно ли отправлять токен на предъявителя с просьбой разрешить запрос через.Также, как бы я сгенерировал этот токен?

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

public function postToApi($url, $data) {
    $req = Request::create($url, 'POST', $data);
    try {
        $res = app()->handle($req);
    } catch (Exception $e) {
        return "not found";
    }
}

Вот пример того, как выглядят маршруты

Route::group(['middleware' => 'auth:api', 'prefix' => 'api', 'namespace' => 'Modules\Forum\Http\Controllers'], function(){
Route::get('reply/{id}', 'ReplyApiController@show' );
Route::get('thread/{id}', 'ThreadApiController@show' );});

1 Ответ

0 голосов
/ 13 декабря 2018

Первое решение - добавить это в .htaccess корневой папки (не только внутри общей папки)

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

это второе решение в Kernel.php группах промежуточного программного обеспечения.

\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,

третье решение

/**
/* Indicates if cookies should be serialized.
/*
/* @var bool
 */
protected static $serialize = true;

в Http/Middleware/EncryptCookies.php исправлено для меня.

...