Firebase OnCall HTTPS函数未触发认证校验?此现象是否符合预期?
这个现象完全符合预期
Firebase Callable函数的默认行为逻辑是:
- 当请求未携带任何认证令牌时,函数会正常执行,此时
req.auth会返回null,不会拒绝请求 - 只有当请求携带了无效的Firebase ID令牌(比如令牌过期、签名错误等)时,后端才会自动拒绝请求,返回认证错误
你看到的官方文档描述,核心点在「若令牌无效则请求会被拒绝」—— 它并没有强制要求所有请求必须携带令牌。如果你的业务逻辑需要限制只有认证用户才能调用函数,得自己在代码里添加校验逻辑,比如:
@https_fn.on_call(memory=512) def simple_on_call(req: https_fn.CallableRequest): # 强制检查用户是否已认证 if not req.auth: raise https_fn.HttpsError( code=https_fn.FunctionsErrorCode.UNAUTHENTICATED, message="必须登录后才能调用此函数" ) return { "echo": req.data["arbitraryPayload"], "auth": req.auth }
修改后,未携带令牌的请求就会被拒绝,返回对应的错误信息。
内容的提问来源于stack exchange,提问作者stevester94
相关产品推荐
相关产品推荐

