Auth не работает на Laravel Passport при вызове из Wordpress wp_remote_post, но работает с почтальоном - PullRequest
0 голосов
/ 11 февраля 2019

Я переспрашиваю и обновляю этот вопрос, а также удаляю свой старый, так как комментарий отклонился от нормы.

Первый раз, используя Laravel Passport, и я потратил часы, пытаясь выяснить это.Я звоню в конечную точку API с сайта WordpressPassport, и Laravel 5.7.19 являются текущими версиями вчерашней чистой установки.

Мой API работает нормально, используя Postman, с Passport аутентификацией.

Я вызываю Laravel Passport API от Wordpress, например:

$args = array(
    'method' => 'POST',
    'timeout' => '45',
    'redirection' => '5',
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array(
        'Accept' => 'application/json',
        'X-Requested-With' => 'XMLHttpRequest',
        'Authorization' => 'Bearer dd4b28b53ea...',
    ),
    'body' => array(
        'email' => $email,
        'channel_url' => $channel_url,
        'api_key' => $api_key,
    ),
    'cookies' => array()
);

// PING API
$response = wp_remote_post( $login, $args );

Если мой маршрут находится внутри группы auth:api, например:

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

    Route::post('my/route', 'Api\AuthController@userChannel');

});

Сбой с 401 на wp_remote_post() звонок.С Postman + Bearer token это работает.

Выбор маршрута вне группы auth:api работает для Wordpress и Postman, и я могу войти в систему / просмотреть токен:

[2019-02-11 05:23:32] local.INFo: Bearer dd4b28b53ea... 

Я попытался изменить .htaccess file и php artisan optimize:clear и Passport::withoutCookieSerialization(); в AppServiceProvider, как предлагается в многочисленных сообщениях, но безуспешно.

Исключение на стороне Laravel:

The resource owner or authorization server denied the request. {"exception":"[object] (League\\OAuth2\\Server\\Exception\\OAuthServerException(code: 9): The resource owner or authorization server denied the request. at /home/vagrant/src/my-app/vendor/league/oauth2-server/src/Exception/OAuthServerException.php:215, InvalidArgumentException(code: 0): The JWT string must have two dots at /home/vagrant/src/my-app/vendor/lcobucci/jwt/src/Parser.php:95)

1 Ответ

0 голосов
/ 12 февраля 2019

Как упоминает Трэвис, в моем коде нет ничего плохого.У меня была проблема логики в моем контроллере.Приведенный выше код работает как надо.

...