用于保护 firebase 函数端点的自定义 API 密钥
Custom API key to protect firebase function endpoints
我需要一个长寿命的 API 密钥生成器,以保护我的 API 端点仅供授权用户(拥有 API 密钥的用户)使用。
所以我认为 Firebase 中没有任何我可以开箱即用的内置功能。
我认为我应该在每次用户注册并请求 API 时生成一个 Firestore 文档
钥匙。
然后我将使用文档 ID 作为 API 键,我可以在 Cloud Function 中验证它。
像这样:
const apiKey = req.headers.authorization.split('Bearer ')[1];
const doc = await admin.firestore().collection('apiKeys').doc(apiKey).get();
if (doc.exists) {
next();
}
所以我的问题是:
- 这是个好方法吗?
- 您还有其他建议吗?
- 它可以扩展吗?
只要您确保您的用户无法获得您的 API 密钥列表,这听起来是一个合理的方法。
它几乎可以在任何数据库上很好地扩展,因为您需要做的就是检查是否存在具有给定 ID 的文档。
我需要一个长寿命的 API 密钥生成器,以保护我的 API 端点仅供授权用户(拥有 API 密钥的用户)使用。 所以我认为 Firebase 中没有任何我可以开箱即用的内置功能。 我认为我应该在每次用户注册并请求 API 时生成一个 Firestore 文档 钥匙。 然后我将使用文档 ID 作为 API 键,我可以在 Cloud Function 中验证它。 像这样:
const apiKey = req.headers.authorization.split('Bearer ')[1];
const doc = await admin.firestore().collection('apiKeys').doc(apiKey).get();
if (doc.exists) {
next();
}
所以我的问题是:
- 这是个好方法吗?
- 您还有其他建议吗?
- 它可以扩展吗?
只要您确保您的用户无法获得您的 API 密钥列表,这听起来是一个合理的方法。
它几乎可以在任何数据库上很好地扩展,因为您需要做的就是检查是否存在具有给定 ID 的文档。