如何在RESTful请求中完成Firebase规则身份验证
Firebase Auth 身份令牌传递方式说明
合法的两种传递渠道
Firebase Realtime Database REST API 仅支持以下两种身份令牌传递方式,你在安全规则中配置的UID不需要主动传递,Firebase服务端会自动从你提交的合法令牌中解析提取:
- URL参数传递(仅适合临时测试)
格式为:[你的Firebase数据库地址]/path/1234.json?auth=<Firebase Auth返回的JWT ID令牌>
注意:该方式存在令牌泄露风险,URL可能被日志、历史记录留存,生产环境禁止使用。 - 请求头传递(生产环境首选)
在请求头中添加Authorization字段,格式为:Authorization: Bearer <Firebase Auth返回的JWT ID令牌>
该方式安全性更高,是官方推荐的传参方案。
常见问题说明
你之前尝试直接传递安全规则里配置的UID字符串无法生效,原因是:
Firebase不会直接把客户端提交的纯UID字符串作为身份凭证,你需要先通过Firebase Auth的登录流程(邮箱密码、第三方登录、手机号验证等)获取到官方签发的JWT格式ID令牌,令牌内置了对应账号的UID、有效期、签名等信息,服务端校验令牌合法性后会自动提取UID,和你安全规则中写的request.auth.uid做匹配校验。
在reqbin平台测试时,优先选请求头方式传参即可,无需把UID放到请求体或其他自定义字段中。
内容的提问来源于stack exchange,提问作者Luxxe
相关产品推荐
相关产品推荐

