You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Passport配置环境变量后仍读密钥文件 无法适配Vapor问题求助

解决方案

前置检查

  • 确认你发布的config/passport.php中公私钥配置项已正确关联环境变量,对应配置应为:
    'private_key' => env('PASSPORT_PRIVATE_KEY'),
    'public_key' => env('PASSPORT_PUBLIC_KEY'),
    
  • 删除本地storage目录下已存在的oauth-private.key、oauth-public.key文件,避免程序优先读取本地文件
  • 确认.env文件中没有配置PASSPORT_KEY_PATH变量,如有请删除该配置项
  • .env中填写的公私钥需要完整包含首尾标识(-----BEGIN PUBLIC KEY-----、-----END PUBLIC KEY-----等),所有换行替换为\n转义字符,整段用双引号包裹,示例格式:
    PASSPORT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\n...\n-----END PUBLIC KEY-----"
    PASSPORT_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC...\n...\n-----END PRIVATE KEY-----"
    

强制加载环境变量密钥

如果完成前置检查后仍报错,可在服务提供者中手动指定密钥优先级,跳过文件读取逻辑:

  1. 打开app/Providers/AppServiceProvider.php,在boot方法中添加如下代码:
use Laravel\Passport\Passport;

public function boot()
{
    // 保留原有业务代码
    if (env('PASSPORT_PRIVATE_KEY') && env('PASSPORT_PUBLIC_KEY')) {
        Passport::privateKey(env('PASSPORT_PRIVATE_KEY'));
        Passport::publicKey(env('PASSPORT_PUBLIC_KEY'));
    }
}
  1. 执行php artisan config:clear清除本地配置缓存,重启服务后验证即可。

生产环境部署注意事项

Vapor平台部署时不需要做额外修改,直接把PASSPORT_PRIVATE_KEY、PASSPORT_PUBLIC_KEY添加到Vapor的环境变量配置中即可,平台会自动加载生效。

内容的提问来源于stack exchange,提问作者Joel Joel Binks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:06:05