- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Angular 应用,并使用 Firebase 对我的用户进行身份验证。我想知道如何阻止我的用户将他们的帐户提供给其他人。另外我想防止人们使用同一帐户同时从不同设备登录。我发现了一些非常好的教程来构建在线状态系统,但是这些系统并不能阻止同一帐户被许多不同的人在多个设备上使用。我已经能够检查用户是否正在尝试使用已在使用的帐户(在线),但我无法注销其中一个用户(使用已经在线帐户..)。我尝试在signInwithemailAndPassword()方法中调用auth.signout(),但它不起作用,我没有成功注销用户。感谢您的帮助。我需要的是一个片段,因为从理论上讲,一切都非常简单。
最佳答案
由于您没有说明您使用的是什么语言,所以我将使用 Swift,但我在这里列出的原则对于任何语言都是相同的。
看看this question 。 Firebase 似乎并不直接支持您正在寻找的内容。但是,您可以执行以下操作:
在数据库中创建一棵树,用于存储用户登录的 bool 值。
SignedIn: {
uid1: {
"signedIn": true
}
uid2: {
"signedIn": false
}
.....
}
我假设您在身份验证后更改了屏幕。现在,您需要在执行此操作之前执行附加查询。如果用户已经登录,您可以显示警报,否则您可以像往常一样继续。
func alreadySignedIn() {
if let uid = Auth.auth().currentUser?.uid {
Database.database().reference().child("SignedIn").child(uid).observeSingleEvent(of: .value, with: { snap in
if let dict = snap.value as? [String: Any] {
if let signedIn = dict["signedIn"] as? Bool {
if signedIn {
// display an alert telling the user only one device can use
// there account at a time
}
else {
// change the screen like normal
}
}
}
})
}
}
当然,这只是防止帐户同时被“共享”。如果您只允许基于设备 ID 登录,您可以制定更严格的准则。例如,您可以 get the device id并且只允许在该设备上登录。您必须允许用户在获得新设备时更新此设置,但如果您确实想锁定您的帐户,这可能是更好的选择。
关于火力地堡 : Prevent same account on multiple devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47751377/
我正在使用 Firebase 在我的应用程序中添加登录/注册。它运行良好,但现在我想检查用户在打开应用程序时是否已经注册并登录,如果是这样,则向他显示主页,否则向他显示登录页面。所以我做了一些搜索,主
我使用 flutter 。我想仅在 2020 年 4 月 26 日这一周将 Firebase 中的 CH 值更新为 false。什么时候有办法? 失败的 Ex.cord: _firestore.col
我来寻求您对我的申请中遇到的问题的帮助。 问题是这样的:新闻源上的帖子位于此捕获中的此帖子 -> [postid] 位置下的数据库中 ,当用户保存帖子时,它在数据库中的存储方式如下:用户 -> [us
我是一名优秀的程序员,十分优秀!