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

Laravel 9 Passport生成API令牌遇密钥读写错误求助

Laravel 9 Passport 密钥生成失败问题解决方法

问题描述

在Laravel 9中通过Postman调用API创建令牌时,出现以下错误:
LogicException: Unable to read key from file file://C:\Users\vivek\pregent-app\app\Providers/../secrets/oauth\oauth-private.key in file C:\Users\vivek\pregent-app\vendor\league\oauth2-ser

尝试执行php artisan passport:keys生成密钥时,触发新错误:
file_put_contents(C:\Users\vivek\pregent-app\app\Providers/../secrets/oauth\oauth-public.key): Failed to open stream: No such file or directory

执行php artisan config:cache清理缓存后问题仍未解决,完整错误堆栈如下:

file_put_contents(C:\Users\vivek\pregent-app\app\Providers/../secrets/oauth\oauth-public.key): Failed to open stream: No such file or directory

at C:\Users\vivek\pregent-app\vendor\laravel\passport\src\Console\KeysCommand.php:54
50▕ file_put_contents($privateKey, Arr::get($keys, 'privatekey'));
51▕ } else {
52▕ $key = RSA::createKey($this->input ? (int) $this->option('length') : 4096);
53▕
➜ 54▕ file_put_contents($publicKey, (string) $key->getPublicKey());
55▕ file_put_contents($privateKey, (string) $key);
56▕ }
57▕
58▕ $this->info('Encryption keys generated successfully.');

1 C:\Users\vivek\pregent-app\vendor\laravel\passport\src\Console\KeysCommand.php:54
file_put_contents()

2 C:\Users\vivek\pregent-app\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
Laravel\Passport\Console\KeysCommand::handle()

解决方案

1. 手动创建密钥存储目录

错误核心是Passport命令不会自动创建不存在的密钥存储目录,需手动生成:

  • 进入项目根目录下的app文件夹,创建secrets文件夹,再在其中创建oauth子文件夹
  • 或直接通过Windows命令行创建:
mkdir "C:\Users\vivek\pregent-app\app\secrets\oauth"

2. 配置目录权限

确保当前用户及Web服务器进程(如IIS的IIS_IUSRS用户)对app/secrets/oauth目录拥有读写权限:
Windows系统右键目录→属性→安全→编辑,添加对应用户并勾选读写权限。

3. 重新生成Passport密钥

执行以下命令生成密钥:

php artisan passport:keys

如需自定义密钥长度,可添加参数:

php artisan passport:keys --length=2048

4. 验证密钥生成结果

检查app/secrets/oauth目录下是否生成oauth-private.key和oauth-public.key两个文件。

5. 清除配置缓存

之前使用的config:cache是缓存配置,需执行清除命令:

php artisan config:clear

6. 重新测试API调用

再次通过Postman调用API创建令牌,验证问题是否解决。

内容的提问来源于stack exchange,提问作者vivek kn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:40:25