node.js apn无法生成令牌

问题描述:

作为标题,我使用node-apn软件包向iOS设备发送推送通知。node.js apn无法生成令牌

在我的本地计算机(MacOS)中,我可以成功向设备发送通知,但是当我将代码部署到CentOS服务器时,我无法访问apnProvider对象。

我的代码是:

var apn = require('apn') 
 
var path = require('path') 
 

 
let options = { 
 
    token: { 
 
    key: path.resolve('/path/to/f8/keyfile'), 
 
    keyId: 'myKeyId', 
 
    teamId: "myTeamID" 
 
    }, 
 
    production: false 
 
}; 
 

 
var apnProvider = new apn.Provider(options);

我得到这个错误,(我想谷歌一下,但不能找到一个解决方案):

/根/ buzzship/node.js/node_modules/apn/lib/credentials/token/prepare.js:45 throw new VError(err,“Failed to generate token”); ^ VError:无法生成令牌:错误:0906D064:PEM例程:PEM_read_bio:bad base64解码 at prepareToken(/root/buzzship/node.js/node_modules/apn/lib/credentials/token/prepare.js:45 :13) at config(/root/buzzship/node.js/node_modules/apn/lib/config.js:42:31) at new Client(/root/buzzship/node.js/node_modules/apn/lib/ client.js:11:19) at EventEmitter.Provider(/root/buzzship/node.js/node_modules/apn/lib/provider.js:12:19) at Object。 (/root/buzzship/node.js/index-api.js:128:19) at Module._compile(module.js:570:32) at Object.Module._extensions..js(module.js:579 :10) at Module.load(module.js:487:32) at try.ModuleLoad(module.js:446:12) at Module.runMain Function.Module._load(module.js:438:3) (module.js:604:10) 在运行(bootstrap_node.js:393:7) 在启动时(bootstrap_node.js:150:9) 在bootstrap_node.js:508:3

请告诉我什么我错了,谢谢。

+0

尝试更新您的OpenSSL和Node版本 –

+0

您的CentOS版本是什么?用下面的输出更新你的问题'cat/etc/redhat-release'和'node -p process.versions' – Ajay

+0

My CentOS version is 7.3.1611 - node -p process.versions output is 6.10.1 – toombeos

谢谢你的建议,我通过升级节点到版本最新的7.10.0解决了这个问题。