firebase - 仅使用电子邮件登录 Firebase(无链接,无密码)
问题描述
前言:这并没有存储任何安全的东西——这是我的一个测试项目,看看什么是可能的,什么是不可能的。
我一直在扫描文档,寻找一种仅使用电子邮件登录用户(在网站上)的方法,而无需他们前往收件箱获取身份验证链接或输入密码。
Firebase Auth 在技术上是否可行?
我想到的一个潜在的黑客方式是有一个隐藏的密码字段,其中每个用户都有相同的密码,并通过 Javascript 预填充。
解决方案
从技术上讲,正如您所描述的那样是可能的。如果您对它没问题,您可以为所有用户使用相同的密码,让所有用户在注册和登录时输入电子邮件。您甚至不需要将其隐藏在某些字段中。只需将其以明文形式放入代码中:
-登记
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
const auth = getAuth();
createUserWithEmailAndPassword(auth, email, "yourPassword")
.then((userCredential) => {
// Signed in
const user = userCredential.user;
// ...
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
// ..
});
-登录
import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
const auth = getAuth();
signInWithEmailAndPassword(auth, email, "yourPassword")
.then((userCredential) => {
// Signed in
const user = userCredential.user;
// ...
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
});
通过使用fetchSignInMethodsForEmail,您可以检测用户是否已注册,并在后台自动执行此操作,因此您的用户只需输入电子邮件,无论他们是否在您身边。新老用户的用户体验是一样的。
警告:技术上可以这样做。我和其他所有人都建议您不要这样做。有人可以使用相同的密码从 ppl 获取用户数据,只需知道他们正在发送电子邮件或对您的项目做其他有害的事情。
也许您可以向我们解释您为什么要这样做,也许我们可以为您找到更好的解决方案。
推荐阅读
- java - 确定按钮和字符串未显示在 JPanel 上
- reactjs - 导入css文件以响应事件
- python - 如何获得唯一的字典列表?
- hazelcast - Hazelcast / Eureka / Hazelcast-eureka-one 自定义实例信息
- flask - 如何在 Flask 中解析我自己的 HTML 文件?
- c - 父母如何在每个孩子和自己之间创建一个管道,每个孩子通过管道将单词的数量发送给父母
- python - 如何在像素输出中查找区域
- android - Android 中 soundEffectsEnabled 视图属性的作用是什么?
- html - 如何查看 preserveAspectRatio xMinYMin 切片的切片部分
- javascript - 如何提交每个类?