2016-07-13 17 views
8

Tôi đã tạo một số người dùng bằng cách sử dụng firebase.auth(). SignInWithEmailAndPassword và muốn ngừng đăng ký ngay bây giờ, nhưng hãy giữ cho đăng nhập hoạt động. Tôi đã thử một số quy tắc về người dùng và thậm chí là ngừng ghi vào firebase. Tuy nhiên đăng ký vẫn có thể. Vô hiệu hóa Email/Mật khẩu trong bảng điều khiển cũng tắt đăng nhập.Cách vô hiệu hóa Đăng ký trong Firebase 3.x

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

Bất kỳ ý tưởng nào về cách áp dụng quy tắc bảo mật cho người dùng trong Firebase 3?

Trả lời

17

Firebase tách riêng xác thực (đăng nhập vào ứng dụng) từ ủy quyền (truy cập cơ sở dữ liệu hoặc tài nguyên lưu trữ từ ứng dụng).

Bạn không thể tắt đăng ký mà không tắt đăng nhập cho tất cả người dùng, không phải là điều bạn muốn.

Trong trường hợp điển hình, nhà phát triển sẽ bắt đầu bảo mật truy cập cơ sở dữ liệu/tệp dựa trên người dùng được xác thực. Xem phần có liên quan trong tài liệu cho database securitystorage security.

Nếu trường hợp sử dụng của bạn là bạn chỉ muốn người dùng cụ thể có quyền truy cập, có thể bạn sẽ muốn triển khai danh sách trắng: danh sách người dùng được phép truy cập dữ liệu.

Bạn có thể làm điều đó trong các quy tắc bảo mật của bạn:

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

Hoặc (tốt hơn) bằng cách đặt danh sách các uids phép trong cơ sở dữ liệu của bạn và đề cập đến rằng từ quy tắc bảo mật của bạn:

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

Và sau đó:

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

Cảm ơn bạn đã phản hồi nhanh. Nó giải quyết vấn đề của tôi. – ZimZim

+0

Nếu câu trả lời của tôi hữu ích, hãy nhấp vào nút upvote ở bên trái của nó. Nếu nó trả lời câu hỏi của bạn, hãy nhấp vào dấu kiểm để chấp nhận câu hỏi đó. Bằng cách đó, những người khác biết rằng bạn đã (đủ) đã giúp đỡ. –

+0

Giải pháp tốt. Vẫn muốn họ thêm vào chức năng này. Sẽ là một mớ hỗn độn lớn nếu chúng tôi có 200 người thử nghiệm và phải thêm chúng theo cách thủ công như thế này –

Các vấn đề liên quan