【问题标题】:How to secure Firebase Auth at the client side? [duplicate]如何在客户端保护 Firebase 身份验证? [复制]
【发布时间】:2022-01-22 21:06:41
【问题描述】:
假设我有一个非常秘密的网站,仅供有限的人使用,例如我的家人,他们只能登录。我是通过 Firebase Auth 创建帐户的管理员。
然后,有人注意到我的前端代码中的 Firebase 凭据来初始化应用程序。
因此,“黑客”在他的本地主机上初始化了一个应用程序,并使用他的电子邮件地址创建了一个用户。现在他可以登录并can do all this other mentioned methods here 访问我的秘密网站,对吧……?如何预防?
【问题讨论】:
标签:
firebase
security
firebase-authentication
【解决方案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 或自定义用户声明中的自定义访问逻辑,您的前端可以使用这些逻辑来决定用户可以看到或看不到什么。