仅针对购买的电子邮件帐户的Firebase身份验

时间:2017-12-22 11:39:29

标签: android firebase firebase-authentication

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

1 个答案:

答案 0 :(得分: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",
    }
  }
}