我有一个应用程序,用户可以通过电子邮件和密码登录。该应用程序有一个提要,其中包含需要调整的帖子。我有一个管理员反应网站,让版主删除或保留帖子。现在,任何用户都可以登录并查看内容,但我想让登录仅适用于管理员用户。我做了我的账户";管理员";使用Firebase的Admin SDK。
我想做一个云函数来验证电子邮件是否是管理员,并相应地返回true或false。然后使用Firebase Auth对用户进行正常身份验证。这足够安全吗?
如果设置了一个自定义声明,将用户标记为应用程序管理员,则可以在客户端代码中检查是否存在该声明。然后,您可以使用结果来显示正确的UI。
在服务器/数据库安全规则中,在允许用户访问/修改主持人数据之前,您还需要检查是否存在此管理员声明。
请注意,这些都不会阻止用户进行身份验证。Firebase中的身份验证只不过是输入您的凭据来证明您就是您自己。根据您的身份授予对资源的访问权限,即授权,由应用程序决定,因此将其包含在客户端代码、服务器端代码或安全规则中。