如何在客户端保护 Firebase 身份验证? [复制]
Posted
技术标签:
【中文标题】如何在客户端保护 Firebase 身份验证? [复制]【英文标题】:How to secure Firebase Auth at the client side? [duplicate] 【发布时间】:2022-01-22 21:06:41 【问题描述】:假设我有一个非常秘密的网站,仅供有限的人使用,例如我的家人,他们只能登录。我是通过 Firebase Auth 创建帐户的管理员。
然后,有人注意到我的前端代码中的 Firebase 凭据来初始化应用程序。
因此,“黑客”在他的本地主机上初始化了一个应用程序,并使用他的电子邮件地址创建了一个用户。现在他可以登录并can do all this other mentioned methods here 访问我的秘密网站,对吧……?如何预防?
【问题讨论】:
【参考方案1】:我已经通过云功能创建了一个触发器,它监听用户创建并禁用新用户。
如果您创建新用户,则需要在 Firebase 控制台中启用该用户。
功能代码:
const onCreateHandler = (user: admin.auth.UserRecord, context: functions.EventContext) =>
if (!user.email)
return null;
return admin.auth().updateUser(user.uid,
disabled: true,
);
;
export const authUserCreatedTrigger = functions.region(functionsRegion).auth.user().onCreate(onCreateHandler);
使用此方法用户/黑客注册后无法登录。
您还可以记录在 firestore 中创建的用户并向自己发送通知(电子邮件):)
您还可以实现一些存储在 firestore 或自定义用户声明中的自定义访问逻辑,您的前端可以使用这些逻辑来决定用户可以看到或看不到什么。
【讨论】:
以上是关于如何在客户端保护 Firebase 身份验证? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 身份验证和实时应用程序数据库如何保护自身?
如何在客户端中使用 Firebase Auth gmail 保护 NestJS 中的 API?
如何使用经过身份验证的 id 令牌和数据库规则保护 Firebase Cloud Function HTTP 端点?
在客户端级别(而非最终用户级别)保护 Firebase REST API