我正在尝试使用 PHP 发送网络推送通知。我已经阅读了有关如何实现网络推送协议的信息,例如此处。但是,我认为我并没有真正理解本指南的作者解释如何形成授权标头的步骤。使用这个库并给定由在线生成器创建的 VAPID 密钥,我尝试了以下操作:
use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Key;
use Lcobucci\JWT\Signer\Ecdsa\Sha256;
$signer = new Sha256();
$privateKey = new Key('<the generated private VAPID key>');
$time = time();
$token = (new Builder())->permittedFor('https://example.com')
->expiresAt($time + 3600)
->withHeader('alg', 'ES256')
->withClaim('sub', 'mailto:someone@example.com')
->getToken($signer, $privateKey);
我想要得到的是类似于<JWT Info>.<JWT Data>.<Signature>out of 的东西$token。但是,我收到错误。
致命错误:未捕获 InvalidArgumentException:无法解析您的密钥,原因:错误:0909006C:PEM ...
有人知道我在这里做错了什么吗?预先非常感谢!
守着一只汪