Firebase Cloud Functions HTTP Basic Auth



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

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

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

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

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

const app = require('express')()
const basicAuth = require('express-basic-auth')

app.use(basicAuth({
users: { 'admin': 'supersecret' }
}))

并在云中使用应用功能,如下所述:

exports.api = functions.https.onRequest(app);

您还可以添加中间件函数,而不是使用快速应用程序

const applyMiddleware = handler => (req, res) => {
return auth(req, res, () => {
return handler(req, res)
})
}
exports.successTest = functions.https.onRequest(applyMiddleware((req, res) => res.send({ success: true })))

要查看没有中间件的简单解决方案,请参阅此 SO 答案

最新更新