После обновления следующих пакетов я получил сообщение об ошибке, что файл oauth-public.key не найден.
Операции с пакетом: 1 установка, 2 обновления, удаление 0
Обновление laravel/framework (v5.4.27 = > v5.4.28): Загрузка (100%)
Установка defuse/php-encryption (v2.1.0): Загрузка (100%)
Обновление лиги/oauth2-сервера (5.1.3 = > 5.1.4): Загрузка (100%)
Во-первых, я удалил два файла oauth - в проекте/хранилище, а затем выполнил эту команду: паспорт php artisan: установите, чтобы создать новый oauth - файлы.
Теперь я получаю следующую ошибку при попытке доступа к маршруту api.
(1/1) ErrorException chmod (/var/dev/project/storage/oauth-public.key): операция не выполнена: операция не разрешена
Трассировка стека
в CryptKey.php(строка 51)
в HandleExceptions- > handleError (2, 'chmod (/var/dev/project/storage/oauth-public.key): операция не выполнена: операция не разрешена', '/var/dev/project/vendor/league/oauth2-server/src/CryptKey.php ', 51, array (' keyPath '= > ' file:///var/dev/project/storage/oauth-public.key ',' passPhrase '= > null,' keyPathPerms '= > ' 644 '))
в chmod ('файл:///var/dev/project/storage/oauth-public.key', 384) в CryptKey.php(строка 51)
в CryptKey- > __construct ('файл:///var/dev/project/storage/oauth-public.key') в ResourceServer.php(строка 50)
Разрешения для файлов
-rw-r--r-- user:user oauth-private.key
-rw-r--r-- user:user oauth-public.key
Обновление 1
Я узнал, что oauth Libaray представил исправление безопасности. Улучшения безопасности Oauth V5
Версия 5.1.4 является обратной совместимостью с другими версиями 5.1.x.
В своем сервере вы заметите следующее сообщение:
Вы должны установить ключ шифрования в будущем, чтобы повысить безопасность этой библиотеки - см. эту страницу для получения дополнительной информации https://oauth2.thephpleague.com/v5-security-improvements/
Чтобы прервать это уведомление, как только вы создали экземпляр \League\OAuth2\Server\AuthorizationServer, вы должны вызвать метод setEncryptionKey(), передающий не менее 32 байт случайных данных.
Вы можете сгенерировать это с помощью base64_encode (random_bytes (32)). Альтернативно, если вы используете фреймворк, такой как Laravel, у которого уже сформирован ключ шифрования, вы можете передать его (в случае использования Laravel env ('APP_KEY')).
Проблема в том, что разработчик Laravel Passport должен это исправить.
Обновление 2
После того как я удалил папку поставщика и выполнил установку компоновщика снова, я получаю ту же ошибку.