我遇到了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
};
以下是我的证书的屏幕截图。
答案 0 :(得分:1)
当您使用证书时,您正在为node-apn
提供基于令牌的配置。
如果您想继续使用证书:
证书应采用PEM格式。
你可以像这样进行转换:
openssl x509 -inform DER -in aps.cer -out certificate.pem
您需要提供密钥,方法是将密钥添加到证书中,或者将密钥作为单独的文件提供
您需要在配置对象中使用cert
,key
和/或pfx
属性,而不是token.key
等。
let options = {
cert: "certificate.pem",
key: "privatekey.pem"
};
或者,您可以切换到使用令牌。
有关详细信息,请参阅https://github.com/node-apn/node-apn/blob/master/doc/provider.markdown。
此外,您的production
属性与使用的证书不一致。