You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何从Firebase认证中间件获取uid到路由?

如何在受保护路由中访问Firebase认证的UID?

你只需要把解码得到的UID挂载到Express的req请求对象上即可——因为整个请求链路中的req是同一个对象,后续的路由处理函数可以直接访问这个属性。

修改后的verifyFirebase.js

function checkAuth(req, res, next) {
  if (req.header('auth-token')) {
    admin.auth().verifyIdToken(req.header('auth-token'))
      .then((decodedToken) => {
          // 将UID挂载到req对象,供后续路由使用
          req.uid = decodedToken.uid;
          next();
      }).catch((err) => {
          console.log(err);
          res.status(403).send('Unauthorized');
      });
  } else {
    res.status(403).send('Unauthorized');
  }
}

module.exports.checkAuth = checkAuth;

修改后的routes.js

const verify_firebase = require('./verifyFirebase').checkAuth;

router.get('/', verify_firebase, (req,res) => {
    // 直接通过req.uid获取认证用户的UID
    res.json({ 
        message: "verified",
        userUid: req.uid 
    });
})

这是Express生态里传递请求级数据的标准方式,所有后续的中间件和路由处理函数都能访问到挂载在req上的属性,完全适配你的场景。

内容的提问来源于stack exchange,提问作者Ugurcan Kaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:55:14