我正在嘗試使用 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:[email protected]') ->getToken($signer, $privateKey);我想要得到的是類似于<JWT Info>.<JWT Data>.<Signature>out of 的東西$token。但是,我收到錯誤。致命錯誤:未捕獲 InvalidArgumentException:無法解析您的密鑰,原因:錯誤:0909006C:PEM ...有人知道我在這里做錯了什么嗎?預先非常感謝!
1 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
在內部,Lcobucci/jwt
API使用?openssl_pkey_get_private()
和openssl_pkey_get_public()
函數。
根據文檔,他們期望 PEM 編碼的密鑰,但這不是您提供的。這類鍵以--------BEGIN前綴開頭。
- 1 回答
- 0 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消