使用 Google App Engine (GAE) 部署 Laravel Passport 时遇到问题

Trouble deploying Laravel Passport with Google App Engine (GAE)

我已经使用 Google 云 SQL 作为数据库。我正在使用 Cloud Build 进行部署,但是在手动部署时我的问题还是一样。我正在尝试让本地工作的 Laravel Passport 安装在 Google App Engine 上工作。

Laravel Passport 需要 运行 php artisan passport:install 才能生成它的加密密钥并将它们存储到数据库中。
在 GAE 自动构建过程中唯一可能的插槽是 composer 中的 "post-install-cmd":[],但是在那个阶段数据库连接尚未建立。 => SQL 运行ning passport:install

时出错


不过

我还尝试通过 SSH 连接到 App Engine 实例并手动 运行ning passport:install,将存储目录更改为 0600,更改所需的 密码加密keyswww-data 但我仍然收到以下错误:
LogicException Key path "file:///app/storage/oauth-private.key" does not exist or is not readable

我现在缺乏选择,遗憾的是找不到 Laravel Passport 已部署到 GAE 项目的参考。

我正在寻找的 是对可能出现问题的另一种观点。我是否遗漏了特定于 Google App Engine 的权限?

提前致谢!

sudo chown www-data:www-data storage/oauth-*.key
sudo chmod 600 storage/oauth-*.key
sudo chown www-data:www-data oauth-public.key
sudo chmod 600 oauth-public.key

我遇到了同样的问题,这个 solution 对我有用。由于本网站内容为中文,请翻译成英文。

将通行证设置放入环境变量

正在创建配置文件。

php artisan vendor:publish --tag=passport-config

在环境变量中嵌入文件内容

php artisan passport:install 

以下文件创建于

storage/oauth-private.key

storage/oauth-private.key

把这个密钥文件的内容放在配置文件中如下

//app.yaml
runtime: php72

env_variables:
  APP_KEY: YOUR_APP_KEY
  APP_STORAGE: /tmp
  VIEW_COMPILED_PATH: /tmp
  CACHE_DRIVER: database
  SESSION_DRIVER: database
  ## Set these environment variables according to your CloudSQL configuration.
  DB_DATABASE: YOUR_DB_DATABASE
  DB_USERNAME: YOUR_DB_USERNAME
  DB_PASSWORD: YOUR_DB_PASSWORD
  DB_SOCKET: "/cloudsql/YOUR_CONNECTION_NAME"
+   PASSPORT_PRIVATE_KEY: |
+     -----BEGIN RSA PRIVATE KEY-----
+     <private key here>
+     -----END RSA PRIVATE KEY-----
+   PASSPORT_PUBLIC_KEY: |
+     -----BEGIN PUBLIC KEY-----
+     <public key here>
+     -----END PUBLIC KEY-----