2017-12-01 3 views
0

개발중인 웹 응용 프로그램의 관리 인터페이스를 만들려고합니다. Angularfire2와 함께 Angular를 사용하고 있습니다. Firebase를 데이터베이스로 사용하고 있습니다.Firestore User Collection isAdmin 구현 각도

사용자 컬렉션에 isAdmin 플래그를 구현하여 지정된 사용자가 관리 기능에 액세스 할 수있는 방법을 알고 싶었습니다.

누구나 내가 이것을 개발하기 위해 어떻게 접근 할 수 있는지에 대해 밝힐 수 있습니까? 사용자 문서에서 설정할 수있는 보안 규칙이 있다는 것을 알고 있습니다. 인증 된 사용자가 자신의 문서를 읽고 쓸 수있는 경우 isAdmin 플래그를 변경하지 못하게하는 요인은 무엇입니까?

또는 부울 키를 추가하고 관리 인터페이스에서 토글 링하는 것만 큼 간단합니다.

감사합니다, 월터

답변

0

당신은 Firebase Admin SDK를 사용하여 사용자 정의 서버에서 사용자 인증 요구를 사용할 수 있습니다. 그런 다음이 클레임을 Firestore 보안 규칙 규칙에 통합 할 수 있습니다. 사용자 지정 클레임 here을 사용하여 액세스 제어에 대해 자세히 알아볼 수 있습니다. 귀하의 경우 FireStore 규칙에서, 예를 들어,이 같은 admin 사용자 지정 클레임을 사용하여이 문서에 대한 읽기 액세스를 제한 할 수 있습니다 :

같은 중포 기지에 대한 사용자 지정 서버 나 클라우드 기능에서 설정 될 수
service cloud.firestore { 
    match /databases/{database}/documents/adminContent { 
    allow read: if request.auth.token.admin == true; 
    } 
} 

:

// Set admin privilege on the user corresponding to uid. 
admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => { 
    // The new custom claims will propagate to the user's ID token the 
    // next time a new one is issued. 
}); 
+0

와우 젠! 큰 팬 btw에 답해 주셔서 감사합니다. 이것은 매우 시원합니다. 나는 이것에 대해 들어 보지도 못했고, 관리자가 아닌 다른 사람들도 필요로하는 모든 일을해야합니다. – wdumlao