用户使用电子邮件和密码登录时,auth.provider未设置为“ password”

亚历山德罗斯·斯卡里奥提斯(Alexandros Skaliotis)

我正在使用Firebase(最新版本)开发iOS应用,auth.provider当使用电子邮件和密码对用户进行身份验证时,安全规则中表达式出现问题。我期望auth.provider表达式返回,password但看起来像它返回anonymous

在Firebase控制台中,我已启用电子邮件/密码和Google作为提供程序,并设置了以下安全规则:

    {
      "rules": {
          "users": {
            "$uid": {

            // the user is allowed to read
            ".read": "auth.uid === $uid",

            // the non-anonymous user is allowed to write
            ".write": "auth.uid === $uid && auth.provider !== 'anonymous'"
            
            // more here, omitted for brevity
          }
        }
      }
    }

在我的应用程序中,当使用用户XYZ使用电子邮件和密码登录时,我无法在/ users / XYZ节点下设置值。我收到“权限被拒绝”错误。用户使用Google凭据登录的情况并非如此,它可以按预期运行。

看来是罪魁祸首auth.provider !== 'anonymous'对于电子邮件/密码登录,我希望提供者等于password; 相反,它似乎设置为anonymousFirebase文档将“密码”列为auth.provider的可能值:https ://firebase.google.com/docs/reference/security/database/#auth

当启用新的“匿名身份验证”功能时,此问题会产生更大的影响(请参阅https://firebase.google.com/docs/auth/ios/anonymous-auth)。据我了解,auth.provider在安全规则中使用将允许人们区分“匿名”用户和“密码”用户。

我是在寻找错误还是在推理中的某个地方犯了初学者的错误?

作为参考,以下是我正在使用的SDK版本(摘自CocoaPods输出):

Using Firebase (3.2.1)
Using FirebaseAuth (3.0.2)
Using FirebaseDatabase (3.0.1)
亚历山德罗斯·斯卡里奥提斯(Alexandros Skaliotis)

Firebase团队确认他们身边某个地方存在错误,并且正在寻求修复。同时,在下面的链接中可以找到一种解决方法:

https://groups.google.com/d/topic/firebase-talk/C-ljg-CCKl0/discussion

解决方法包括使用以下安全规则来检测用户是否使用电子邮件地址进行了身份验证:

auth.token.firebase.identities.email !== null

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

set_password() 未设置 DRF 密码

来自分类Dev

如何使用gcloud控制台或firebase工具CLI为新的firebase项目启用电子邮件和密码登录提供程序?

来自分类Dev

在Django中使用电子邮件和密码登录

来自分类Dev

如何使用AngularFire2使用电子邮件和密码创建用户登录

来自分类Dev

Laravel 4 Auth ::尝试使用电子邮件或用户名和密码

来自分类Dev

调用任务函数发送电子邮件时,对象引用未设置为对象的实例

来自分类Dev

使用电子邮件和密码创建用户时,如何向用户对象添加属性?

来自分类Dev

使用电子邮件和密码登录时,displayName返回null

来自分类Dev

使用电子邮件注册时如何在firebaseUser中设置displayName

来自分类Dev

如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名

来自分类Dev

如何使用电子邮件扩展将Jenkins构建作业状态设置为电子邮件的默认主题

来自分类Dev

python-social-auth Facebook 和 LinkedIn 用户的电子邮件为空

来自分类Dev

使用委托时“对象引用未设置为实例”

来自分类Dev

在Firestore中使用电子邮件和密码创建用户时,如何从OnCompleteListener返回值?

来自分类Dev

如何在 WooCommerce 中仅使用电子邮件和密码登录

来自分类Dev

Javascript和Firebase 3-使用电子邮件和密码创建用户

来自分类Dev

Javascript和Firebase 3-使用电子邮件和密码创建用户

来自分类Dev

使用电子邮件或用户名登录

来自分类Dev

使用 firebase Toast 消息检查电子邮件和密码的 EditTexts 是否为空

来自分类Dev

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

来自分类Dev

筛选dataGridView时“对象引用未设置为对象的实例”

来自分类Dev

过滤dataGridView时,“对象引用未设置为对象的实例”

来自分类Dev

WPF窗口关闭时未设置为null

来自分类Dev

登录为电子邮件时用于https的URI方案

来自分类Dev

Firebase使用电子邮件,密码,显示名称和照片网址创建用户

来自分类Dev

使用电子邮件,密码,显示名称和photoURL创建用户

来自分类Dev

Firebase使用电子邮件,密码,显示名称和照片网址创建用户

来自分类Dev

使用电子邮件和密码重新认证Firebase用户

来自分类Dev

Yii安全风险:如何在表单上设置为空的电子邮件和密码

Related 相关文章

  1. 1

    set_password() 未设置 DRF 密码

  2. 2

    如何使用gcloud控制台或firebase工具CLI为新的firebase项目启用电子邮件和密码登录提供程序?

  3. 3

    在Django中使用电子邮件和密码登录

  4. 4

    如何使用AngularFire2使用电子邮件和密码创建用户登录

  5. 5

    Laravel 4 Auth ::尝试使用电子邮件或用户名和密码

  6. 6

    调用任务函数发送电子邮件时,对象引用未设置为对象的实例

  7. 7

    使用电子邮件和密码创建用户时,如何向用户对象添加属性?

  8. 8

    使用电子邮件和密码登录时,displayName返回null

  9. 9

    使用电子邮件注册时如何在firebaseUser中设置displayName

  10. 10

    如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名

  11. 11

    如何使用电子邮件扩展将Jenkins构建作业状态设置为电子邮件的默认主题

  12. 12

    python-social-auth Facebook 和 LinkedIn 用户的电子邮件为空

  13. 13

    使用委托时“对象引用未设置为实例”

  14. 14

    在Firestore中使用电子邮件和密码创建用户时,如何从OnCompleteListener返回值?

  15. 15

    如何在 WooCommerce 中仅使用电子邮件和密码登录

  16. 16

    Javascript和Firebase 3-使用电子邮件和密码创建用户

  17. 17

    Javascript和Firebase 3-使用电子邮件和密码创建用户

  18. 18

    使用电子邮件或用户名登录

  19. 19

    使用 firebase Toast 消息检查电子邮件和密码的 EditTexts 是否为空

  20. 20

    ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

  21. 21

    筛选dataGridView时“对象引用未设置为对象的实例”

  22. 22

    过滤dataGridView时,“对象引用未设置为对象的实例”

  23. 23

    WPF窗口关闭时未设置为null

  24. 24

    登录为电子邮件时用于https的URI方案

  25. 25

    Firebase使用电子邮件,密码,显示名称和照片网址创建用户

  26. 26

    使用电子邮件,密码,显示名称和photoURL创建用户

  27. 27

    Firebase使用电子邮件,密码,显示名称和照片网址创建用户

  28. 28

    使用电子邮件和密码重新认证Firebase用户

  29. 29

    Yii安全风险:如何在表单上设置为空的电子邮件和密码

热门标签

归档