我需要一个长期使用的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的文档。