【问题标题】:auth.token.email realtime database whith firebase Authenticationauth.token.email 实时数据库,带有 firebase 身份验证
【发布时间】:2019-09-04 13:10:27
【问题描述】:

在实时数据库规则中是可能的 验证身份验证中是否存在电子邮件?

因为我登录 在https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY] 并获取 idToken 登录实时数据库, 但我想知道是否有办法验证 如果 auth.token.email = 身份验证电子邮件并启用电子邮件 这是 idToken base64 解码的结果:

我需要知道身份验证用户中是否存在“email”:“xx@xx.com”

{
 "iss": "https://securetoken.google.com/xaxaxaxa",
 "aud": "xaxaxaxa",
 "auth_time": 1567541399,
 "user_id": "xxxxaxxaxaxaxaxaxax",
 "sub": "xaxaxaxaxaxaxaxa",
 "iat": 1567541399,
 "exp": 1567544999,
 "email": "xx@xx.com",
 "email_verified": false,
 "firebase": {
  "identities": {
   "email": ["xx@xx.com"]
  },
  "sign_in_provider": "password"
 }
}

【问题讨论】:

    标签: firebase rest firebase-realtime-database firebase-security


    【解决方案1】:

    安全规则无法检查某个电子邮件地址是否存在。他们所能做的就是阅读令牌中的声明并采取行动。但通常在令牌中有一个"email_verified" 声明,您可以使用它来确保电子邮件地址已通过验证:

    "someNode": {
      ".write": "auth.token.email_verified === true"
    }
    

    验证可以由提供商(例如在 Google 和 Facebook 提供商的情况下)进行,也可以通过您自己的代码通过 Admin SDK 进行。

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 1970-01-01
      • 2020-12-31
      • 2021-01-22
      • 2018-01-28
      • 1970-01-01
      • 2018-09-17
      • 2020-02-11
      • 1970-01-01
      相关资源
      最近更新 更多