2

我在 Heroku 中部署了一个解析服务器应用程序,我一直在使用 Docker 在本地开发它。此应用程序使用推送通知,因此需要访问一些加密数据才能使用 APN。

我在本地安装了一个带有令牌密钥文件的卷。在 Heroku 上,这不是一个选项,我不想将密钥捆绑在未加密的包中。我一直在尝试以不同的方式将 JSON 参数中的令牌键编码到“PARSE_SERVER_PUSH”环境变量中。似乎需要的是一个缓冲区,但我不知道如何在 JSON 中表示这样的东西,而且我通过一些搜索也没有找到任何东西。

我目前在我的推送配置中使用它:

{"ios": 
    {
        "token": {
        "key": {"type":"Buffer","data":[45, 45, ... 45]},
        "keyId": "MYKEYID",
        "teamId": "MYTEAMID" 
        },
        "topic": "com.myApp", 
        "production": false
    }
}

但是服务器在“关键”字段上窒息:

2019-01-23T19:47:36.725181+00:00 app[web.1]: VError: Failed loading token key: path must be a string or Buffer
2019-01-23T19:47:36.725191+00:00 app[web.1]:     at prepareToken (/parse-server/node_modules/apn/lib/credentials/token/prepare.js:15:13)
2019-01-23T19:47:36.725193+00:00 app[web.1]:     at config (/parse-server/node_modules/apn/lib/config.js:43:31)
2019-01-23T19:47:36.725194+00:00 app[web.1]:     at new Client (/parse-server/node_modules/apn/lib/client.js:21:19)
2019-01-23T19:47:36.725195+00:00 app[web.1]:     at new Provider (/parse-server/node_modules/apn/lib/provider.js:12:19)
2019-01-23T19:47:36.725201+00:00 app[web.1]:     at Function._createProvider (/parse-server/node_modules/@parse/push-adapter/lib/APNS.js:251:22)
2019-01-23T19:47:36.725203+00:00 app[web.1]:     at new APNS (/parse-server/node_modules/@parse/push-adapter/lib/APNS.js:81:29)
2019-01-23T19:47:36.725204+00:00 app[web.1]:     at new ParsePushAdapter (/parse-server/node_modules/@parse/push-adapter/lib/ParsePushAdapter.js:65:40)
2019-01-23T19:47:36.725205+00:00 app[web.1]:     at loadAdapter (/parse-server/lib/Adapters/AdapterLoader.js:31:16)
2019-01-23T19:47:36.725206+00:00 app[web.1]:     at loadAdapter (/parse-server/lib/Adapters/AdapterLoader.js:24:12)
2019-01-23T19:47:36.725207+00:00 app[web.1]:     at getPushController (/parse-server/lib/Controllers/index.js:230:54)

有谁知道如何实现这一目标?

编辑:文档(https://github.com/node-apn/node-apn/blob/master/doc/provider.markdown)表明这是可能的:

token.key {Buffer|String} 要从磁盘加载的提供者令牌密钥(由 Apple 提供)的文件名,或包含密钥数据的缓冲区/字符串

4

0 回答 0