嗨,我使用以下函数生成了VAPID密钥,正如我搜索过的那样,vapid密钥只能为一个项目创建一次,我们可以在发送推送通知时使用该vapid密钥,我已经生成了vapid密钥,但是我必须将有效密钥存储在某个位置,并在发送推送通知时检索它们。请告知我如何存储有效密钥
fun generateVapidPublicKey(uniqueVisitorId: String): String {
val keyPair= this.webPushService.generateVapidKeyPair()
val publicKey = keyPair!!.public as ECPublicKey
val encodedPublicKey = Utils.encode(publicKey)
return Base64Encoder.encodeUrl(encodedPublicKey)
}
从字符串转换为KeyPair
fun generateKeyPair(): KeyPair {
return KeyPair(
Utils.loadPublicKey("ODyt-8tafKI35yE-tz9eLah0goe63CeFYGmnmIaLe8="),
Utils.loadPrivateKey(
"BPO9QDvvjnLCAusoZ1vXZQjVaCG3sOP9vd-VHSUOoN3Jj3VXXSQPzQ31NMrK76N-eODmioJXUpN0gfoIBORZrt="
)
)
}
抛出“无效点编码为0x38”
最佳答案
是的,每个项目只能使用一个虚拟密钥。您可以将有效密钥存储在数据库或配置文件中。