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

使用Session Cookie授权时,Firestore安全规则中request.auth能否使用?

使用Session Cookie授权时Firestore安全规则中request.auth的可用性

结论:使用Session Cookie进行授权时,Firestore安全规则里的request.auth无法生效

这和你提到的官方说明完全对应:出于安全原因,Firebase会话Cookie不能与Firestore等其他Firebase客户端服务配合使用,它支持最长2周的自定义有效期,这种设计决定了它只能用于你的后端服务做用户身份验证,无法直接被Firestore的安全规则识别。

如果要在Session Cookie的场景下控制Firestore访问权限,你需要通过后端代理请求的方式实现:

  • 前端将Session Cookie发送到你的后端服务
  • 后端用Firebase Admin SDK验证Session Cookie有效性,获取用户UID等身份信息
  • 后端要么直接通过Admin SDK操作Firestore(Admin SDK不受安全规则限制),要么在转发给Firestore的请求中附带合法的用户身份标识,再在安全规则中通过自定义字段(比如请求头、文档字段)做权限校验

举个安全规则调整的示例(配合后端传递的自定义请求头):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow read, write: if request.headers.get('X-Authenticated-UID') == uid;
    }
  }
}

这种方式下,后端必须严格验证Session Cookie后才会添加X-Authenticated-UID请求头,确保权限校验的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:22:05