问题标签 [vapid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
773 浏览

push-notification - Web Push vapid 密钥生成逻辑

我有多个用于发送 Web 推送通知的 https 域。但我会从一台服务器发送网络推送通知。我知道为什么要使用它,并且我阅读了一些有关它的文件。但我没有看到任何关于这种方法的信息。我只从我的服务器生成了 vapid 密钥一次。我尝试使用这些键发送推送通知,并成功收到通知。但我有 2 个问题要问你。

  1. 我应该为每个域生成不同的 VAPID 密钥吗?
  2. 我可以只生成一个 VAPID 密钥并使用所有域吗?
0 投票
2 回答
1010 浏览

node.js - Lightsail AWS Node.js 永远开始

我正在尝试使用 Vapid CMS,并且想将一个新站点上传到我的 Amazon Lightsail 服务器。Vapid 依赖于 Node.js,我能够将 Vapid 下载到我的帐户并使用我通过 AWS 拥有的静态 IP 地址设置所有内容。

Vapid 的工作方式是,一旦您进入根文件夹,您就会调用 vapid start 。启动服务器并查看您的站点/访问仪表板。我进行了设置,以便 AWS 服务器的静态 IP 地址重定向到启动 Vapid 时激活的默认http://localhost:3000 。

我遇到的主要问题是 Vapid 网站不会长时间保持活动状态。如果我在声明 Vapid 后退出 AWS 终端,几分钟后网站会转到“服务不可用”。有没有办法让这个傻瓜永远运行,以便我的网站一直运行到时间结束?

0 投票
1 回答
787 浏览

proxy - 如何为基于 localhost:3000 node.js 的应用程序建立 Apache2 代理

我试图弄清楚如何将我在 AWS Lightsail 上运行的 Apache2 服务器链接到我正在使用的应用程序,该应用程序在激活时使用http://localhost: 3000——它是一个简单的基于 Node.js 的 CMS,称为 Vapid。我将服务器链接到我的域名 - bigsheepcollective.com - 我可以让 Vapid 通过 AWS 终端运行,但它只是 Apache2 登录页面显示在我的域名上。我在这里看到了一个教程,介绍了在 Nginx 运行的服务器上建立代理传递,但我不确定如何为使用 Apache2 的服务器做同样的事情。

我试过使用 Nginx 教程,也没有对 Apache2 的代理设置进行大量搜索,但我对运行使用 http// 的应用程序时需要哪种类型的代理感到困惑:本地主机:3000。

0 投票
1 回答
3900 浏览

google-chrome - Chrome 错误“提供的应用程序服务器密钥不是 VAPID 密钥。”

我正在尝试向我的网络应用程序实施推送通知。可悲的是,我一开始就在挣扎。虽然我在 Firefox 上取得了良好的开端,但 Chrome 错误“提供的应用程序服务器密钥不是 VAPID 密钥。将来仅支持 VAPID 密钥。有关更多信息,请查看https://crbug.com/979235。” 我尝试了来自不同来源的不同密钥。例如,从https://tools.reactpwa.com/vapid生成的这个密钥有什么问题,我在下面的代码中使用?

0 投票
0 回答
195 浏览

push-notification - 如何在 Postman 中使用带有 Vapid 键的 Push API 发送推送通知?

如果我有 vapid 键和订阅者,如何在邮递员中发送推送通知?我已经配置了服务人员,所以这不是问题。我只想发送一个简单的请求来测试它是否有效。

出于演示目的,这是我的 JSON 格式数据:

乏味的钥匙

订阅者示例

0 投票
0 回答
91 浏览

security - 如何验证私有和公共 VAPID 密钥是否正确?

运行后

它生成一个公钥和私钥。给定这两个密钥,有什么方法可以验证它们是否是正确的一对?(即如果我有私钥并且我可能输错了公钥)但想确保它是正确的

0 投票
1 回答
817 浏览

php - 使用 PHP 进行 Web 推送的 JWT 签名

我正在尝试使用 PHP 发送网络推送通知。我已经阅读了有关如何实现网络推送协议的信息,例如这里。但是,我认为我并没有真正理解本指南的作者解释如何形成授权标头的步骤。使用这个库并给定我由在线生成器创建的 VAPID 密钥,我尝试了以下操作:

我想得到的是类似于<JWT Info>.<JWT Data>.<Signature>out of 的东西$token。但是,我得到一个错误。

致命错误:未捕获的 InvalidArgumentException:无法解析您的密钥,原因:错误:0909006C:PEM ...

有人知道我在这里做错了什么吗?提前非常感谢!

0 投票
1 回答
237 浏览

push-notification - Erlang:将 vapid 密钥 PEM 文件转换为 base 64 字符串格式(applicationServerKey)

嗨,我喜欢从 erlang 服务器应用程序发送 FCM 推送通知。当用户在浏览器中订阅 FCM 通知时。swRegistration.pushManager.subscribe() 需要一个公钥(applicationServerKey)。

所以要获得这个密钥,我使用 openssl 并生成两个 PEM 文件私钥和公钥。

我知道你可以从 firebase 控制台获取私钥和​​公钥。但是提供的密钥不是 PEM 格式,并且签署 JWT 的 erlang 库使用PEM 文件进行签名和验证。

因此,从生成的私人 PEM 密钥中,我可以对 JWT 进行签名,但我需要 base64 字符串格式的 applicationServerKey 将其添加到标头中,并在浏览器中订阅用户。

我应该将 firebase 控制台中的密钥转换为 PEM 或将 PEMS 转换为 firebase 密钥格式。

我花了两天时间尝试用 Erlang 来做这件事。

我发现如何在 Python 中做到这一点,我需要一些在 erlang 中等效的东西。

0 投票
0 回答
27 浏览

laravel-5 - 如何用 VAPID 替换 FCM,我有推送面板,我想将旧的 fcm 功能替换为 vapid

我的开发人员构建了这个面板,它内置在 laravel 框架中。它使用 Firebase 云消息传递 (fcm) 来发送通知。现在我经过一些研究,我知道在 VAPID 的帮助下,可以在没有 fcm 的情况下发送推送。所以亲爱的朋友们,请告诉有什么办法可以从 fcm 转变为 vapid 吗?

0 投票
0 回答
77 浏览

ruby-on-rails - Webpush::Unauthorized: 主机: fcm.googleapis.com, #

我正在尝试在我正在维护的 Web 应用程序上集成 Web 推送通知。我使用这个 github repo https://github.com/zaru/webpush作为我的指南。

遵循该指南中包含的内容后,在我的终端上运行此命令:

突然,我遇到了这个错误,这里有人遇到和我一样的错误吗?你是怎么解决的?先感谢您。