2017-05-08 210 views
0

作爲標題,我使用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

回答

1

謝謝你的建議,我通過升級節點到版本最新的7.10.0解決了這個問題。