node.js - 保护 Node 应用程序引擎中的 PubSub 推送端点?

标签 node.js google-app-engine google-cloud-pubsub

我正在使用 pubsub 将消息推送到灵活环境中用 Node 编写的 App Engine 应用程序中。有没有办法可以将我的端点限制为仅来自 pubsub 的流量?

在标准环境中,App Engine 具有可以定义仅限管理员请求和安全端点的处理程序。但是,此功能在灵活环境中不可用。是否可以仅针对 Google 请求设置防火墙规则(防火墙似乎是应用程序范围的,而不是端点?),是否有标准方法来保护端点,或者我是否需要自定义解决方案?

最佳答案

Google 已经发布了解决方案 in the docs

解决办法是:

在您的 app.yaml 环境中创建 token :

env_variables:
 PUBSUB_TOPIC: <your-topic-name>
 # This token is used to verify that requests originate from your
 # application. It can be any sufficiently random string.
 PUBSUB_VERIFICATION_TOKEN: <your-verification-token>

将 token 与您的消息一起发送:

 https://YOUR_APP_ID.appspot.com/pubsub/push?token=YOUR_TOKEN \
--ack-deadline 10

检查推送处理程序中的 token :

  if (req.query.token !== PUBSUB_VERIFICATION_TOKEN) {
    res.status(400).send();
    return;
  }

RTFM!

关于node.js - 保护 Node 应用程序引擎中的 PubSub 推送端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970087/

相关文章:

docker - Kubernetes 集群中 Docker 镜像中的环境变量

google-cloud-pubsub - 优先考虑 Google Pubsub 上的消息

node.js - 获取新创建的主题时,Google PubSub 抛出 "Not found"

javascript - 在 Node.js 中设置 HTTP 超时

node.js - 在 Chrome 中使用 $window.open() 打开另一个应用程序的新选项卡时隐藏地址栏

sql - 从 Node.JS 连接到 SQL Azure

javascript - 如何使用 Node.js 实现 youtube.search.list

google-app-engine - 在 App Engine 数据存储区的等效查询之间?

python - 计算 Python 中 GQL 查询给出的不同字符串的数量

google-app-engine - 如何使用 letsencrypt (2016) 使用带有自定义域的谷歌应用引擎配置 SSL