2017-02-07 4 views
0

У меня есть Firebase Web Authentication pretty much setup and working для oAuth, а также локальное имя пользователя/pwds (адреса электронной почты).Firebase Web Authentication - одобрение администратора для новых учетных записей

Мой вопрос: Есть ли у кого-нибудь идеи о том, как ввести дополнительный шаг там, чтобы новые учетные записи были одобрены администратором сайта до того, как они были полностью проверены? Я думал о настройке/использовании свойства user.emailVerified, но я думаю, что это не будет работать для пользователей oAuth.

Есть ли простой способ сделать это - добавить шаг утверждения администратора? Или, есть ли свойство в подсистеме Authentication Firebase, которое я мог бы легко переключить?

enter image description here

ответ

5

Создание пользователя с помощью Firebase Authentication обеспечивает их только с уникальным идентификатором пользователя. Это не позволяет им получить доступ к вашим приложениям или «зарегистрировать» их каким-либо образом. Это полностью ваша задача. Это не что иное, как карта уникальных учетных данных (например, идентификаторы Facebook или хэши электронной почты/пароля) для уникальных идентификаторов Firebase.

Вы можете «зарегистрировать» пользователей, предоставив вам любые права доступа и любой рабочий процесс, чтобы добавить пользователя в вашу базу данных (или любой другой соответствующий механизм).

Предполагая базу данных, вы должны написать профиль пользователя/метаданные в путь, например /users/$uid, и основывать свои правила безопасности на наличие /users/<user id>.

Чтобы обеспечить соблюдение прав администратора, самым простым ответом было бы поддерживать отдельный путь, такой как /registered/<user id>/true, который доступен только администраторам (и, конечно же, правилам безопасности).

Теперь вы можете написать правила, как следующее:

{ 
    "...some path...": { 
    ".read": "root.child("registered/" + auth.uid).val() === true" 
    } 
} 

существу исполнение процесса регистрации.

+0

Это имеет смысл. Таким образом, это позволит мне добавить функциональность «авторизации», которую я ищу. Огромное спасибо. –

+0

ОК, но на 'auth.onAuthStateChanged', как я могу определить, что зарегистрированный пользователь зарегистрирован/авторизован или нет? Другими словами, я хочу показать ссылку/кнопку только зарегистрированным/авторизованным пользователям. Я думаю, просто сделайте 'db.ref ('/ registered /' + uid) .once ('value'). Then (function (snap) {if (snap.val() === true) {// занесено в журнал в авторизованном пользователем}}); 'это безопасно? Это способ сделать это? –

+0

Я обновил свой вопрос на скриншоте базы данных. «Дилеры» = «Зарегистрированные» пользователи в вашем ответе, т. Е. Та же идея. Большое спасибо за вашу помощь. –

Смежные вопросы