2016-07-13 14 views
8

Utworzyłem kilku użytkowników za pomocą firebase.auth(). SignInWithEmailAndPassword i chciałbym zatrzymać teraz rejestrację, ale kontynuuj pracę. Próbowałem niektórych reguł dla użytkowników, a nawet przestałem pisać do bazy firewall. Jednak rejestracja była nadal możliwa. Wyłączenie e-maila/hasła w konsoli wyłącza również logowanie.Jak wyłączyć rejestrację w Firebase 3.x

{ 
    "rules": { 
     ".read": true, 
     ".write": false, 
     } 
} 

Jakieś pomysły dotyczące stosowania reguł bezpieczeństwa dla użytkowników w Firebase 3?

Odpowiedz

17

Firebase jawnie oddziela uwierzytelnianie (logowanie się do aplikacji) od autoryzacji (dostęp do zasobów bazy danych lub pamięci masowej z aplikacji).

Nie można wyłączyć rejestracji bez wyłączania logowania dla wszystkich użytkowników, co nie jest tym, czego potrzebujesz.

W typowym scenariuszu programista rozpocznie zabezpieczanie dostępu do bazy danych/pliku na podstawie uwierzytelnionego użytkownika. Zobacz odpowiednią sekcję w dokumentach dla database security i storage security.

Jeśli Twoim przeznaczeniem jest to, że chcesz, aby tylko określeni użytkownicy mieli dostęp, prawdopodobnie będziesz chciał zaimplementować białą listę: listę użytkowników, którzy mają dostęp do danych.

Można to zrobić w swoich zasad bezpieczeństwa:

{ 
    "rules": { 
     ".read": "auth.uid == '123abc' || auth.uid == 'def456'", 
     ".write": false, 
     } 
} 

albo (lepiej) poprzez umieszczenie listy dozwolonych UID w swojej bazie danych i odnosząc się do tego od swoich zasad bezpieczeństwa:

"allowedUids": { 
    "123abc": true, 
    "def456": true 
} 

A następnie:

{ 
    "rules": { 
     ".read": "root.child('allowedUids').child(auth.uid).exists()", 
     ".write": false, 
     } 
} 
+0

Dziękuję za szybką reakcję. Rozwiązuje mój problem. – ZimZim

+0

Jeśli moja odpowiedź była przydatna, kliknij przycisk upvote po lewej stronie. Jeśli odpowiedź na Twoje pytanie, kliknij znacznik wyboru, aby je zaakceptować. W ten sposób inni wiedzą, że zostałeś (wystarczająco) pomógł. –

+0

Ładne obejście. Nadal chciałbym dodać tę funkcję. Będzie wielkim bałaganem, jeśli mamy 200 testerów i musimy dodać je ręcznie, tak jak to –

Powiązane problemy