laravel_token действителен для первого запроса, но не для последующих запросов - PullRequest
0 голосов
/ 17 мая 2018

Я установил Laravel Passport и настроил его в соответствии с документацией. При вызове axios.get из моего файла VueJS первый вызов работает должным образом. laravel_session Cookie запроса вставляется в запрос, и аутентификация проходит, возвращая ресурс.

Моя проблема возникает, когда я пытаюсь вызвать метод axios.get снова. Мой вариант использования здесь - это функция поиска. Я звоню на /api/banking/accounts/search/{search-term} всякий раз, когда пользователь вводит текстовое поле, используя код ниже:

remoteMethod(query) {
            if (query !== '') {
                this.loading = true;

                axios.get(
                    `/api/banking/accounts/search/${escape(query)}`
                ).then(res => {
                    this.destinationAccountDirectory = res.data;
                    this.loading = false;
                });
            } else {
                this.destinationAccountDirectory = [];
            }
        },

Этот код прекрасно работает без промежуточного ПО auth:api на маршруте и впервые с промежуточным ПО auth:api. Как видно из скриншотов ниже, значение laravel_token изменяется и отклоняется при последующих вызовах API.

Responses Responses Responses Responses

** Я пытался удалить \Laravel\Passport\Http\Middleware\CreateFreshApiToken, который был добавлен в группу промежуточного программного обеспечения web во время установки паспорта, что, казалось, временно решило проблему, пока вскоре после этого я не получил 419 по запросу. Что может быть причиной отклонения новых laravel_tokens? **

1 Ответ

0 голосов
/ 17 мая 2018

Я решил эту проблему, удалив промежуточное ПО web из моего маршрута API.Почему это было там, во-первых, я понятия не имею.

Я изменил свой api.php с

Route::group([
    'middleware' => [
        'web',
        'auth:api']], function() {

    Route::post('/banking/transactions', 'TransactionController@store');

    Route::get('/banking/accounts', 'BankAccountDirectoryController@index');
    Route::get('/accounts/{account}', 'BankAccountDirectoryController@show');
    Route::get('/banking/accounts/search/{term?}', 'BankAccountDirectoryController@search');
});

на

Route::group([
    'middleware' => [
        'auth:api']], function() {

    Route::post('/banking/transactions', 'TransactionController@store');

    Route::get('/banking/accounts', 'BankAccountDirectoryController@index');
    Route::get('/accounts/{account}', 'BankAccountDirectoryController@show');
    Route::get('/banking/accounts/search/{term?}', 'BankAccountDirectoryController@search');
});

Следуетмаршруты API находятся под веб-группой, чтобы извлечь выгоду из промежуточного программного обеспечения, или это чисто для пользовательского интерфейса?Могу ли я это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...