firebase - 在电子邮件密码身份验证中进行额外的自定义检查 (Flutter - Firebase)
问题描述
对于 Flutter-Firebase 移动应用程序,是否可以进行其他检查(在使用电子邮件/密码验证时),例如附加手机的设备 ID并使用 Firestore 数据库检查以确保电子邮件设备的唯一性(以防止运行相同应用程序在具有相同电子邮件/密码的多个设备上)登录。
当前的登录方法 ( https://firebase.flutter.dev/docs/auth/usage/ ) 仅接受电子邮件+密码,并且找不到附加其他用户信息以进行身份验证的方法。
signInWithEmailAndPassword() 方法:
try {
UserCredential userCredential = await FirebaseAuth.instance.signInWithEmailAndPassword(
email: "barry.allen@example.com",
password: "SuperSecretPassword!"
);
} on FirebaseAuthException catch (e) {
if (e.code == 'user-not-found') {
print('No user found for that email.');
} else if (e.code == 'wrong-password') {
print('Wrong password provided for that user.');
}
}
解决方案
电子邮件密码验证仅需要电子邮件和密码来验证用户。如果您需要存储任何其他数据,则必须将它们存储在自定义声明或任何数据库中。您可以根据需要阅读此信息。但是,用户仍然可以对应用程序进行反向工程并在没有额外检查的情况下登录,因为 Firebase 只需要电子邮件和密码,即使没有额外的身份验证扩展,它仍然可以工作。
每当用户登录时,您可以检查数据库中是否存在该用户帐户的任何会话,然后根据会话是否存在执行相关操作。
推荐阅读
- c - 将文件读入函数内的数组
- ios - iOS 如何处理来自低级 C/Objective-C 代码的内存损坏?
- angularjs - 将angular项目转为npm模块后的html、css等文件去哪了,项目如何转为npm模块?
- excel - Excel VBA - 替换表格列中的文本
- c - 使用 # 和 ## 运算符的嵌套宏实现
- ios - Why isn't my ARKit Video showing in app view
- node.js - API调用后不知道如何使用csv-writer逐行写入csv文件
- c++ - 如何查找/删除具有特定参数的结构向量的元素?
- r - 在 rstan 中指定矩阵的先验分布
- ios - Move subview in front of other subview without preventing interaction