Laravel и Passport, случайная ошибка 401

Я пишу одностраничное веб-приложение.

Я использую Vue.js во внешнем интерфейсе и Laravel в бэкэнде.

Я включил аутентификацию токена Passport, и я получаю отправку токена аутентификации

var login_data = {
    client_id : 2,
    client_secret : "SECRET_KEY",
    grant_type : "password",
    username : "mail",
    password : "pass"
}

К этой конечной точке Passport http://IPADDRESS/oauth/token. Затем я аутентифицирую свои запросы AJAX, включая этот заголовок

{ 'Authorization': 'Bearer ' + ACC_TOKEN }

Большую часть времени все работает нормально, но иногда я получаю 401 unauthorized. Обычно, если я просто делаю это снова, запрос проходит.

Я удалил промежуточное ПО VerifyCsrfToken из Kernel.php, а также добавил маршрут API в исключения, поэтому не думаю, что это проблема.

Частота появления ошибки, кажется, меняется от сети к сети, то есть при подключении к определенным сетям это почти никогда не происходит, хотя иногда это происходит постоянно.

Честно говоря, я понятия не имею, почему это происходит.


person Lorenzo Norcini    schedule 01.04.2017    source источник


Ответы (1)


Моя проблема была в PROJECTDIR/vendor/lcobucci/jwt/src/Signer/Rsa.php.

Здесь функция openssl (openssl_get_publickey) иногда возвращает что-то неправильное, несмотря на то, что сертификат действителен.

Мне не удалось найти реального решения.

Мой хак на данный момент просто меняет код, чтобы он всегда возвращал 1.

Это не меняет способ работы аутентификации по токену, но удаляет проверку Rsa и ошибки 401, вызванные таким сбоем.

person Lorenzo Norcini    schedule 05.05.2017
comment
Я редактирую файл Rsa.php, как вы говорите, чтобы функция doVerify всегда возвращала true, но ошибка все еще была. Вы поняли, что на самом деле??? - person Santi Barbat; 09.09.2017
comment
Это сгенерировало что-то в журнале для вас? - person Fabio William Conceição; 29.05.2019