【问题标题】:Firebase subaccountsFirebase 子帐号
【发布时间】:2021-04-17 05:08:27
【问题描述】:

我目前正在构建一个 POS/商店管理应用程序,当用户进入我的应用程序时,商店的所有者将被要求仅登录一次以进行设置(例如,一台新机器),然后该应用程序将显示该所有者已经添加的staffsName列表,然后每次有员工想要开始新的交易时,他/她只需点击他/她的名字,然后输入他/她的4位密码即可“登录”并处理交易。

我该如何实现这一目标? 我正在考虑使用 firebase auth 来“登录”员工,但是当我使用员工凭据登录时,我将无法访问所有者的 uid,这是访问所有者的商店数据所必需的,例如他的/她的产品。

我也在考虑使用 Firestore 来存储 4 位密码,但我也担心安全性

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication


    【解决方案1】:

    有多种方法可以解决此问题,其中一种方法是使用电子邮件登录,只需将假域名附加到用户名即可创建有效的电子邮件域。此用户帐户可能是相关的指定“用户”,或者使用自定义声明中的凭据或隐藏在允许客户端或服务器(取决于您的偏好)然后以用户身份登录的数据库中。

    此外,如果您希望管理员登录一次,您可以添加 Authentication State Persistence 以指定是否应无限期保留已登录的用户,直到显式退出、页面重新加载等。

    另一种方法要求用户还具有不是电子邮件密码的有效身份验证,并且您根据文档使用 Firebase 身份验证链接将您的 pin 身份验证链接到该主帐户:https://firebase.google.com/docs/auth/web/account-linking

    但是,这确实要求用户从 Google、Twitter、Apple 等身份验证提供商处注册,然后用户必须通过登录来激活此链接以进行身份​​验证。这在理论上可以在用户不知情的情况下自动生成和处理。

    这还有很长的路要走,因为这本质上是一个自定义解决方案,但它确实创建了您正在寻找的流程,而无需使用自定义身份验证提供程序。

    【讨论】:

    • 如果我的回答有帮助,您介意接受吗?或提供一些反馈?谢谢。
    • @YosuaMartiansia 更新了答案,提供了有关身份验证状态持久性的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 2017-09-05
    • 2018-06-21
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多