在更新了以下软件包后,我发现无法找到oauth-public.key文件。
包装操作:1次安装,2次更新,0次清除
更新laravel /框架(v5.4.27 => v5.4.28):下载(100%)
安装defuse / php-encryption(v2.1.0):下载(100%)
更新联盟/ oauth2-server(5.1.3 => 5.1 .4):下载(100%)
首先我删除了项目/存储中的两个oauth文件,然后执行了这个命令:php artisan passport:安装生成新的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'))
在CryptKey.php(第51行)中的chmod('file:///var/dev/project/storage/oauth-public.key',384)
在CryptKey-> __construct('file:///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护照的维护者必须解决这个问题。
更新2
在我删除供应商文件夹并执行composer安装再次我仍然是同样的错误。