Laravel Passport: недостающие ключи после развертывания в aws - PullRequest
0 голосов
/ 15 октября 2018

У меня проблемы с настройкой паспорта на лавашах на упругом бобовом стеблеКлиент eb настроен правильно, и я могу развернуть изменения кода.Ошибки не отображаются.

Однако выполнение запросов к laravel приводит к ошибке 500, сообщая, что мне не хватает ключей паспорта в "app / current / storage / oauth-public.key \".Локально все работает нормально.

Думаю, мне не хватает команды ремесленника "php artisan passport: install", поэтому я добавил ее в файл композитора:

"post-install-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postInstall",
        "@php artisan passport:install"
]

Но, видимо, это такне создавать ключи.

Либо ловушка после установки не выполняется после запуска eb deploy, либо существует другая ошибка, которая не позволяет мне создать файл ключа (отсутствует разрешение на запись?)

Как проверитьчто послеустановочный хук выполнен?У кого-нибудь была похожая проблема?

Я следовал советам в этом выпуске, но пока это не помогло: https://github.com/laravel/passport/issues/418

ОБНОВЛЕНИЕ: я зашёл в приложение и попытался запустить php artisan passport: установить вручную, что привело к ошибке.Сначала я должен был дать разрешения для папки (хранилище sudo chmod -R 777), затем она заработала.К сожалению, ключи удаляются каждый раз, когда я запускаю eb deploy, поэтому мне придется каждый раз повторять эти шаги - довольно громоздко.Кто-нибудь нашел хороший способ автоматизировать это?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Хитрость заключается в использовании различных файлов .ebignore и .gitignore.

  1. Создание ключей в локальной среде.
  2. Игнорирование его в .gitignore (/storage/*.keys)
  3. Разрешить его в .ebignore (# / storage / *. Keys)

Таким образом, ключи не будут отслеживаться в git, но все равно будут загружаться на эластичный стержень с помощью eb deploy команда.

0 голосов
/ 15 ноября 2018

Видимо, этот PR https://github.com/laravel/passport/pull/683 позволял передавать ключи по envvars.

/*
|--------------------------------------------------------------------------
| Encryption Keys
|--------------------------------------------------------------------------
|
| Passport uses encryption keys while generating secure access tokens for
| your application. By default, the keys are stored as local files but
| can be set via environment variables when that is more convenient.
|
*/
'private_key' => env('PASSPORT_PRIVATE_KEY'),
'public_key' => env('PASSPORT_PUBLIC_KEY'),

Я еще не тестировал, но скоро буду.

Обновление

Мы попробовали это и достигли предела размера envvars в 4K: https://forums.aws.amazon.com/thread.jspa?messageID=618423&#618423

В конце мы вместо этого использовали наш CI.

...