我正在尝试使用 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 ...有人知道我在这里做错了什么吗?预先非常感谢!
1 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
在内部,Lcobucci/jwt
API使用 openssl_pkey_get_private()
和openssl_pkey_get_public()
函数。
根据文档,他们期望 PEM 编码的密钥,但这不是您提供的。这类键以--------BEGIN前缀开头。
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消