Есть ли способ ограничить пользователей регистрацией учетных записей электронной почты/пароля firebase, чтобы новые пользователи не могли зарегистрироваться? У меня есть небольшое приложение, к которому нужно иметь доступ только несколько админов (которые я создал вручную в администраторе Firebase) и способ его настройки прямо сейчас, похоже, что кто-то может ввести небольшой javascript и зарегистрировать учетную запись.Есть ли способ ограничить регистрацию в firebase
ответ
Firebase Simple Login - это абстракция, построенная сверху Firebase Custom Login для удобства. При использовании аутентификации по электронной почте/паролю стоит иметь в виду, что это просто создает сопоставление между этим письмом и паролем и автоматически генерирует токены аутентификации для использования в ваших правилах безопасности.
В вашем конкретном случае, если все пользователи «admin» уже созданы, вы можете добиться того, что вы ищете с помощью правил безопасности. Например, если вы хотите разрешить доступ только для чтения/записи к вашему дереву данных Firebase для пользователей, прошедших проверку подлинности в этом списке, попробуйте написать правила безопасности для чтения и записи на верхнем уровне, которые требуют, чтобы пользователь находился в списке «администраторы»:
{
".read" : "auth != null && root.child('admins').hasChild(auth.uid)",
".write" : "auth != null && root.child('admins').hasChild(auth.uid)"
}
Эти правила выше гарантируют, что пользователь проходит аутентификацию (через auth != null
) и требуют, чтобы идентификатор аутентифицированного пользователя находится в списке админов (root.child('admins').hasChild(auth.uid)
).
Последний шаг состоит в том, чтобы на самом деле сделать это администратором пользователей, написав их в поддереве admins
. Скажем, у вас есть пользователи 1, 4 и 7, чтобы админы, обновить дерево данных, чтобы отразить следующее:
{
...
"admins": {
"1": true,
"4": true,
"7": true
}
}
В результате этого, даже если другие пользователи могут создавать новые электронной почты/отображения паролей используя Firebase Simple Login, эти сопоставления не будут влиять на ваше приложение, поскольку оно ограничено с помощью правил безопасности.
Такой отличный ответ. Большое спасибо за Вашу помощь! – binaryorganic
Я пытаюсь написать «root.child (« admins »). HasChild (auth.uid)» в Bolt. Я бы предположил, что это будет «root.admins.uid! = Null», но он преобразуется в «root.child ('admins'). Child ('uid'). Val()! = Null", а затем он not work = ( – Anders
root.admins [auth.uid]! = null – mckoss
@RobDiMarco предоставил отличный ответ, но у него есть недостаток.
Правило root.child('admins').hasChild(auth.uid)
будет проходить, в случае, если auth.uid
будет пустой строкой.
Вы можете протестировать это в Firebase Database Security Simulator, очистив поле uid
({ "provider": "anonymous", "uid": ""}
).
Это правило root.child('admins').child(auth.uid).val() === true
не будет проходить с пустым uid
.
- 1. Используя API Facebook, есть ли способ ограничить регистрацию определенным атрибутом?
- 2. Есть ли способ ограничить количество детей в firebase?
- 3. Есть ли способ ограничить наследование?
- 4. Есть ли способ ограничить NSNotification?
- 5. Как ограничить регистрацию WCF
- 6. Есть ли способ определить, действителен ли UID пользователя Firebase?
- 7. Есть ли способ аутентифицировать роль пользователя в правилах хранения firebase?
- 8. Есть ли способ ограничить ресурсы, выделенные Сервисом?
- 9. Есть ли способ ограничить ограничение использования плунжера?
- 10. Есть ли способ ограничить Git редким оформлением?
- 11. Есть ли способ ограничить левое внешнее соединение?
- 12. Есть ли лучший способ выразить эту свободную регистрацию в Виндзоре?
- 13. Есть ли способ ограничить/результирующие наборы
- 14. Prestashop: есть ли способ ограничить адрес фактуры только одним?
- 15. Есть ли способ пропустить регистрацию шестнадцатеричной формы из System.Net?
- 16. Есть ли способ игнорировать регистрацию элемента или класса для TableViewCell?
- 17. Замок Виндзор: есть ли способ проверить регистрацию без разрешения?
- 18. Есть ли способ программно отменить регистрацию устройства для push-уведомления?
- 19. Есть ли способ сделать обычную регистрацию с помощью EureakLog?
- 20. Есть ли способ ограничить поля в агрегированном запросе в MongoDB
- 21. Есть ли способ сделать в реальном времени ForEach в Firebase?
- 22. Есть ли способ ограничить ширину текста в UITextView
- 23. Есть ли способ ограничить количество символов в UITextfield до 5?
- 24. Есть ли способ ограничить область зависания свойства в CSS?
- 25. Есть ли способ ограничить создание поля модели в Rails?
- 26. Есть ли способ ограничить область переменных в ERB (Ruby)?
- 27. в ESE (JetBlue) есть ли способ ограничить поиск несколькими ключами?
- 28. Есть ли способ ограничить доступ путем настройки в WildFly?
- 29. Есть ли способ ограничить скорость отправки писем в Play Framework?
- 30. Есть ли способ ограничить продолжительность захвата аудио в Codename One?
Это было [задано и ответили ранее] (http://stackoverflow.com/questions/17719703/how-do-i-restrict-signup-to-a-product-in-firebase). Вкратце: используйте пользовательский логин или просто запретите чтение/запись на учетные записи, которые вы не авторизуете. – Kato