【问题标题】:Flutter one account per device每台设备 Flutter 一个帐户
【发布时间】:2019-08-13 02:22:06
【问题描述】:

如何使一个帐户下的应用程序中只有一个用户?我使用flutter + firebase auth(电子邮件和密码) 例如,我有一个帐户,只有我可以从我的设备登录。如果有人发现我的帐户,他将无法登录 谢谢!

【问题讨论】:

  • 您可以使用设备 ID 跟踪特定帐户的唯一设备,因此当用户尝试从新设备登录时,您可以通知他另一台设备已在此帐户上。
  • 如何实现?使用分析?
  • 不,你可以使用device_info
  • 所以,我意识到在 device_info 的帮助下,我将收到有关设备的信息(包括设备 ID),但我不太明白如何将其链接到帐户?
  • 好的,我只是给你一个非常粗略的想法,一旦你有了设备信息,你可能想将它上传到一个节点中,设备 ID 为 root,帐户信息为子节点。

标签: firebase dart flutter firebase-authentication


【解决方案1】:

我只是给你一个想法如何去做。

  1. 在 Cloud Firestore 中,创建一个名为 device_ids 的集合。

  2. 当用户尝试登录时,检查其手机的设备 ID(比如 9876543210)是否作为文档 ID 出现在您的集合 device_ids 中。

  3. 如果不是,则使用此设备 ID 创建一个文档 ID,并在此文档 ID 中创建一个 email 字段并将给定的电子邮件 ID 放在这里并允许用户注册。

  4. 如果是,请转到特定文档 ID(此处为9876543210)并获取email(即hello@email.com)。现在检查用户是否输入了此电子邮件,允许他登录,否则告诉他获取的电子邮件 ID 已经为此设备注册,他需要使用电子邮件 ID 登录。

希望有帮助!

【讨论】:

  • 如果我理解正确...事实证明,当我尝试使用任何电子邮件地址登录时,程序首先会检查该电子邮件地址是否在 Firestore 中,如果是,则阻止 ui,然后如果没有,开放访问!?我只是想知道我是否正确理解了您的逻辑。)))
  • 是的,你有点明白了。逻辑是首先检查设备 ID 是否存在,如果存在,则检查与该 ID 链接的电子邮件地址,如果用户输入了此电子邮件,则允许访问,否则阻止它。
【解决方案2】:

如果只想确保应用的唯一性,请使用 Phone Authentication with Firebase

电话身份验证将向输入的电话号码发送 OTP 以进行验证,并且由于电话号码是唯一的,因此只能由一台设备访问。

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多