Firebase 云功能 HTTP 基本身份验证

Mar*_*gos 5 basic-authentication node.js firebase google-cloud-functions google-cloud-firestore

我需要创建一个返回 PDF 的 API 端点。该端点旨在由 Twilio 访问以与其传真 API 一起使用。但是,通过身份验证执行此操作的唯一方法是使用HTTP Basic Auth

使用express-basic-auth npm 包似乎很容易做到这一点。但是,我不确定我的技术堆栈的物流情况。我使用 Firebase、Firestore 和 Cloud Functions。

如何使用 Cloud Functions 安全地实现此 HTTP 基本身份验证?我不能像我说的那样使用 Firebase 的 Auth 产品 bc,另一个 API 需要与此端点交互,而不是与实际的人交互。我将有许多内部用户名和密码,我应该将它们存储在数据库 Firestore 中吗?将其硬编码到函数的数组中?

最终的问题是,我应该将用户名密码存储在 Firestore 文档中吗?

Kri*_*jic 2

根据Firebase 文档,Google 在其堆栈中支持 Express 应用程序。因此,您可以按照express-basic-auth的包文档中的说明简单地创建中间件:

const app = require('express')()
const basicAuth = require('express-basic-auth')
 
app.use(basicAuth({
    users: { 'admin': 'supersecret' }
}))
Run Code Online (Sandbox Code Playgroud)

并按照此处所述在云功能中使用该应用程序:

exports.api = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)