javascript - 如何将 aps.cer 文件用于 Node.js 的 APN(推送通知)?

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

我在 node.js 发送推送通知时遇到问题,我想是因为我在我的苹果开发者帐户中生成的 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

最佳答案

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

如果您想继续使用证书:

  • 证书应为 PEM 格式。

    您可以像这样进行转换:

    openssl x509 -inform DER -in aps.cer -out certificate.pem
    
  • 您需要提供 key ,可以将其添加到证书中,也可以将其作为单独的文件提供

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

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

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

参见 https://github.com/node-apn/node-apn/blob/master/doc/provider.markdown了解全部详情。

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

关于javascript - 如何将 aps.cer 文件用于 Node.js 的 APN(推送通知)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48080181/

相关文章:

javascript - 如果 2 个选择框匹配并自动选择第二个选项不匹配,我如何让它们相互关闭?

javascript - Backbone.js 绑定(bind)到集合 "add"渲染 View 两次

javascript - 我可以在 Vue.js 中使用 CSS 函数绑定(bind)内联样式吗? Vue.js 假设 translate3d() 是一个 JavaScript 函数,并表示它没有定义

ios - 2个imageView ios的碰撞

ios - 自定义 View 中的 self.view.size 返回 [0,0]

javascript - HTML 5 音频元素不在 Rails 中循环

ios - 自定义 UISegmentedControl 的颜色

node.js - 将对象传递给 Handlebars 后,如何在脚本标记中访问该对象?

javascript - 从另一个目录启动时,我的 node.js 服务器不工作

node.js - "describe"和 "schema.define"和有什么区别?