【问题标题】:Firebase Authentication for purchased email account only?Firebase 身份验证仅适用于购买的电子邮件帐户?
【发布时间】:2017-12-22 11:39:28
【问题描述】:

我在 Play 商店有免费版和付费版都具有 Firebase 身份验证如何确保除了购买的帐户之外没有登录其他电子邮件帐户

【问题讨论】:

  • 他们可以登录,但您可以阻止他们访问数据库。
  • 如何获取购买的邮箱账号
  • 创建一个单独的未付费用户列表
  • 我的疑问是,如果您使用 abc@gmail.com 在 Play 商店购买付费应用程序,如何获取电子邮件 abc@gmail.com

标签: android firebase firebase-authentication


【解决方案1】:

考虑使用自定义用户声明,然后通过 Firebase 规则强制访问,或者如果您在自己的服务器中解析自定义声明,请检查 ID 令牌中是否存在自定义声明: https://firebase.google.com/docs/auth/admin/custom-claims

用户登录并完成购买后,您可以将购买凭证连同用户的 ID 令牌发送到您的后端进行处理。如果两者都得到验证,则为该用户设置自定义声明:

admin.auth().setCustomUserClaims(uid, {paidSubscriber: true}).then(() => {...

然后您强制客户端刷新其令牌以获取最新声明: currentUser.getIDToken(true)...

现在每个请求都可以通过检查 ID 令牌来检查用户是否被授权。

{
  "rules": {
    "paidContent": {
      ".read": "auth.token.paidSubscriber === true",
      ".write": "auth.token.paidSubscriber === true",
    }
  }
}

【讨论】:

    猜你喜欢
    • 2017-10-26
    • 2023-03-18
    • 2018-02-10
    • 2019-05-01
    • 2017-01-09
    • 1970-01-01
    • 2022-08-07
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多