node.js - 限制对 Firebase 托管内容的访问

标签 node.js firebase google-cloud-platform google-cloud-functions firebase-hosting

我正在 firebase 上构建一组 REST API。 我已经生成了带有 swagger (对于“外部”文档)和 jsdoc (对于“内部”文档)的文档。因此,从 jsdoc 中,我有一堆 HTML 页面,我想将它们部署到 FB 托管上,但我想将这些页面的访问限制为仅某些经过身份验证的用户。

对于动态内容,例如swagger- generated,我很容易解决如下。

doc_fun.use(
  '/rest',
  basicAuth({
    users: {'user': 'password'},
    challenge: true,
  }),
  swaggerUi.serve,
  swaggerUi.setup(swaggerSpec)
)
exports.docs = functions.https.onRequest(doc_fun)

我正在寻找(可能类似)静态内容的解决方案。像这样的东西:

doc_fun.use(
  '/jsdoc', 
  basicAuth({
    users: {'user': 'password'},
    challenge: true,
  }), 
  express.static('public/jsdoc')
)

(当然,这是行不通的)

最佳答案

您将在这个官方云功能 sample 中找到您需要的一切,其中展示了“如何对 JSON API 的访问进行身份验证,以仅允许特定 Firebase 用户访问数据”。

更准确地说,它展示了 Express 中间件如何“验证在授权 HTTP header 中传递的 Firebase ID token ”。

关于node.js - 限制对 Firebase 托管内容的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67481867/

相关文章:

node.js - MongoDB + nodejs : how to query ISODate fields?

javascript - Django、Nodejs 还是 Ruby on Rails?

javascript - 无法解析来自 React Firebase 对象的数据

GCP 上 ipv6 的 Ios 提交问题

linux - Google Cloud Run 和系统功能

node.js - ng 不被识别为内部或外部命令。 Jenkins + 角度 CLI

node.js - AWS Lambda 函数不接受 Twilio 模块

java - Firebase : Can't convert object of type java. lang.String 输入 com.example.g.Model.Cart

firebase - 如何使用 vue 和 vuefire 加载 firebase 数据?

google-cloud-platform - 需要全局 GPU 配额但无法请求增加