当前位置: 首页 > 知识库问答 >
问题:

Firebase云功能的安全HTTP触发器

鞠嘉誉
2023-03-14

有没有办法在触发云功能之前检查用户是否经过Firebase授权?(或在函数内)

共有1个答案

阎经武
2023-03-14

是的。您需要将Firebase ID令牌与请求一起发送(例如,在AJAX请求的authorization头中),然后使用Firebase Admin SDK验证它。Firebase示例存储库的云功能中有一个深入的示例。它看起来是这样的(为了SO post而变得更短):

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const cors = require('cors')();

const validateFirebaseIdToken = (req, res, next) => {
  cors(req, res, () => {
    const idToken = req.headers.authorization.split('Bearer ')[1];
    admin.auth().verifyIdToken(idToken).then(decodedIdToken => {
      console.log('ID Token correctly decoded', decodedIdToken);
      req.user = decodedIdToken;
      next();
    }).catch(error => {
      console.error('Error while verifying Firebase ID token:', error);
      res.status(403).send('Unauthorized');
    });
  });
};

exports.myFn = functions.https.onRequest((req, res) => {
  validateFirebaseIdToken(req, res, () => {
    // now you know they're authorized and `req.user` has info about them
  });
});
 类似资料:
  • 我正在寻找一种为Firebase安排云功能的方法,或者换句话说,在特定的时间触发它们。

  • 我有一个云函数,它在我的客户机上验证表单提交的输入。我正在使用云函数用于带有cors express中间件的Firebase https触发器。 Firebase功能 对函数的客户端调用 问题 是否可以防止firebase在预飞行请求上触发函数调用?如果没有,那么是否有一种方法可以阻止预飞行请求并成功地将数据传递给函数。

  • 我完全不熟悉Firebase云功能(2天曝光)。当Firebase数据库检测到添加了新数据时,我尝试向我的应用程序的所有用户发送通知。以下是我到目前为止的情况: 我知道代码现在处于混乱状态,这是由于几个来自不同教程网站的复制和测试。我可以成功地从console.log获得数据的名称,但无法向所有用户发送通知。 我知道大多数使用令牌和设备ID。但是有没有更简单的方法发送给我的每一个用户呢?我是否需要

  • 问题内容: 尝试使用PayPal-node-SDK向Paypal的API请求 但我不断出错: 我尝试过的事情: 向完全不同的主机发出请求 将请求包装为 预先考虑到主机 问题是什么? 问题答案: 您需要按照付费计划进行外部API请求。 Firebase的Blaze计划(随用随付)为云功能免费分配。https://firebase.google.com/pricing/

  • 我知道这里已经有人问过这个问题,但它没有回答我的问题。我的问题是,我们怎样才能分解指数。js用于云函数,包括onWrite调用等。 我意识到您可以使用“要求”并引入外部代码。它仍然留下一些代码(例如,在Franks OCR示例中),在index.js. 理想情况下,我希望能够将整个onWrite事件触发器移动到另一个文件中。 索引中的示例。js: 如何将整个函数event watch/call移动

  • 我正在测试Firebase云功能的新区域设置,有些地方不对劲(我可能做错了)。 由于我们的用户在欧洲,我想把我所有的项目和功能都转移到欧洲。Https函数按预期工作,只需设置以下内容: 另一方面,我对Firebase触发器有问题。虽然这个功能工作正常: 这样的代码不会被触发: 我做错了什么?? 我正在使用以下版本: “firebase功能”:“2.0.4”, “firebase管理员”:“5.13