1

我在 node.js 发送推送通知时遇到问题,我想是因为我在苹果开发者帐户中生成的 APN 证书有问题。我从 Node.js 收到此错误。

VError: Failed to generate token: error:0906D06C:PEM routines:PEM_read_bio:no start line

我不确定我是否在苹果开发者帐户中生成了正确的文件。请参见下面的屏幕截图,当我单击下载时,这给了我一个“aps.cer”文件,这是我放入我的 node.js 项目并与 node-app 模块一起使用的文件。这是我在我的代码中设置它的方式:

let options = {
        token: {
            key: "aps.cer",
            keyId: "singlemeout.Single-Me-Out",
            teamId: "Team Name"
        },
        production: false
    };

这是我的证书的屏幕截图。

在此处输入图像描述

4

1 回答 1

2

node-apn您在使用证书时提供了基于令牌的配置。

如果您想继续使用证书:

  • 证书应为 PEM 格式。

    您可以像这样进行转换:

    openssl x509 -inform DER -in aps.cer -out certificate.pem
    
  • 您需要提供密钥,可以将其添加到证书中,也可以将其作为单独的文件提供

  • 您需要在配置对象中使用cert,key和 orpfx属性,而不是token.keyetc。

    let options = {
            cert: "certificate.pem",
            key: "privatekey.pem"
        };
    

或者,您可以切换到使用令牌。

有关完整详细信息,请参阅https://github.com/node-apn/node-apn/blob/master/doc/provider.markdown

此外,您的production财产与使用的证书不一致。

于 2018-01-03T16:05:43.247 回答