如何使用带有Node.js的APN(推送通知)的aps.cer文件?

时间:2018-01-03 15:16:38

标签: javascript ios node.js apple-push-notifications node-apn

我遇到了node.js发送推送通知的问题,我想是因为我在我的Apple开发者帐户中生成的APN证书出错了。我从Node.js得到这个错误。

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

我不确定我是否在Apple开发者帐户中生成了正确的文件。见下面的截图,当我点击下载时,这给了我一个" aps.cer"文件是我在我的node.js项目中放置并与node-app模块一起使用的文件。以下是我在代码中设置它的方法:

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

以下是我的证书的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:1)

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

如果您想继续使用证书:

  • 证书应采用PEM格式。

    你可以像这样进行转换:

    openssl x509 -inform DER -in aps.cer -out certificate.pem
    
  • 您需要提供密钥,方法是将密钥添加到证书中,或者将密钥作为单独的文件提供

  • 您需要在配置对象中使用certkey和/或pfx属性,而不是token.key等。

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

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

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

此外,您的production属性与使用的证书不一致。