嗨,我使用以下函数生成了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”

最佳答案

是的,每个项目只能使用一个虚拟密钥。您可以将有效密钥存储在数据库或配置文件中。

07-27 13:39