2FA 的 Firestore 安全规则

5 firebase-security firebase-authentication google-identity google-cloud-firestore

我正在使用 Firebase 构建一个无服务器应用程序:Firestore 和云功能。我一直在努力解决的一件事是如何验证用户是否启用了 2FA 以允许访问某些功能。已注册 Google Identity Platform 以允许 2FA,但遗憾的是,我无法找到强制执行 2FA 的选项。

我的安全规则要求是:登录、验证电子邮件、使用 2FA 进行身份验证。

Cloud Firestore 中当前的安全规则:

request.auth != null && request.auth.token.email_verified
Run Code Online (Sandbox Code Playgroud)

据我搜索request.auth.token.phone_number可以检查,但这只检查用户是否注册了电话号码,而不检查他们是否有2FA登录?

小智 5

在向谷歌小组寻求支持后,我找到了这个问题的答案:

if request.auth.token.firebase.get('sign_in_second_factor', null) == 'phone'
&& 'second_factor_identifier' in request.auth.token.firebase;
Run Code Online (Sandbox Code Playgroud)

如果用户拥有手机作为 2FA,则将允许访问。

您可以在谷歌群组上查看 Sam 的原文:https://groups.google.com/g/firebase-talk/c/7EZfxETa_jk/m/4e0FRCpWAgAJ