Laravel промежуточное ПО возвращает не прошедший проверку подлинности на производственном сервере из подкаталога - PullRequest
0 голосов
/ 20 марта 2020

Я отправляю запрос API для получения сведений о пользователе после входа в систему. У меня есть проект, в котором я использую только API, я поместил этот проект в подкаталог с именем api. поэтому интерфейс работает на root, который встроен в реаги JS.

. Я также удалил префикс API из RouteServiceProvider, потому что не хочу вызывать domain.com/api/api

Маршрут:

Route::group(['namespace' => 'Auth'], function(){
    ...

    Route::post('login','LoginController@login'); // Running successfully
    Route::middleware('auth:api')->get('/user', 'LoginController@user'); // Returning 401 unauthenticated
});

RouteServiceProvider

protected function mapApiRoutes()
    {
        Route::middleware('api')
            ->as('api.')
            ->namespace($this->namespace."\\API")
            ->group(base_path('routes/api.php'));
    }

Пробные решения

1) Я поместил Passport::withoutCookieSerialization(); внутри boot метод в AppServiceProvider

2) Я поместил Passport::$ignoreCsrfToken = true; внутри boot метод в AuthServiceProvider

Заранее спасибо

1 Ответ

0 голосов
/ 20 марта 2020

Я сам нашел решение.

Я добавил эти строки в файл .htaccess, помещенный в проект root из Laravel (не опубликован c).

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