使用 Rails RPUSH gem 为 APNS 编码 JWT 密钥

Posted

技术标签:

【中文标题】使用 Rails RPUSH gem 为 APNS 编码 JWT 密钥【英文标题】:Encoding JWT key for APNS using rails RPUSH gem 【发布时间】:2016-11-08 12:12:21 【问题描述】:

我想使用 JWT 密钥发送推送通知

我搜索了实现 JWT 令牌标准的库:https://jwt.io/

于是我找到了 ruby​​-jwt gem:https://github.com/jwt/ruby-jwt

但它似乎无法创建具有Apple要求的结构的密钥:


    "alg": "ES256",
    "kid": "ABC123DEFG"


    "iss": "DEF123GHIJ",
    "iat": 1437179036
 

另外,我应该如何使用 APNs Auth Key (.p8 mime-type) 来生成 JWT 令牌?

欢迎任何建议

更新

好的,我发现可以在标题中添加自定义字段 https://github.com/jwt/ruby-jwt/pull/8/files

无论如何,我应该如何使用 APNs Auth Key? rpush gem 是否支持 jwt 令牌?

【问题讨论】:

根据这个问题,rpush 目前不支持这个:github.com/rpush/rpush/issues/322 【参考方案1】:

这里是使用 http2 和 jwt https://github.com/andrewarrow/p8push的新 p8 格式的 ruby​​ gem

【讨论】:

聚会迟到了,但我正在努力让 p8push 工作。我的通知从未标记为“已发送”。但是,如果我使用“推送通知测试器”和相同的参数测试所有内容,我会在 iPhone 上收到通知。我的服务器运行 Ubuntu 16.04.6,所有参数都硬编码在一个简单的 REST (Sinatra) 调用中。最新的 p8push 版本。

以上是关于使用 Rails RPUSH gem 为 APNS 编码 JWT 密钥的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Rails、apn_sender gem 连接到 APNS(Apple Push Notifications Server)

带有 Rpush gem 的 IOS/SWIFT 推送通知:生产中的无效令牌 (8)

使用 Rpush 将推送通知添加到我的 rails 3 应用程序时出错

使用 Rails Web 应用程序推送通知

我应该为在 CouchDB 上运行的 Rails 3 使用哪个身份验证 gem/插件?

Rails 5 - 使用 Audited gem 查看更改