최고 관리자는 모든 사용자가 자신의 프로필을 편집하고 새 콘텐츠를 게시 할 수있는 특별한 uid를 가진 사용자입니다.Firebase에서 '최고 관리자'를 만드는 방법은 무엇입니까?
수퍼 관리자를 만드는 방법은 무엇입니까?
최고 관리자는 모든 사용자가 자신의 프로필을 편집하고 새 콘텐츠를 게시 할 수있는 특별한 uid를 가진 사용자입니다.Firebase에서 '최고 관리자'를 만드는 방법은 무엇입니까?
수퍼 관리자를 만드는 방법은 무엇입니까?
기본적으로 데이터 구조와 소속 보안 규칙에 관한 내용입니다. 시작하려면 user roles
일종의 데이터 구조를 만드십시오. 이 같은 예를 들어
:
{
"data" : {
"user1id" : {
"name" : "MisterX"
},
"user2id" : {
"name" : "John Doe"
}
},
"users" : {
"user1id" : {
"role" : "admin"
},
"user2id" : {
"role" : "member"
}
}
}
각 사용자는 role
라는 속성이 있습니다.
이제 당신은 바로 액세스 권한을 정의합니다 role
재산의 사용을 보안 규칙을 정의 할 수 있습니다 :
"data" : {
"$userid" : {
".read" : true,
".write" : "root.child('users').child(auth.uid).child('role') === 'admin'",
}
}
을 경우에는 단지 관리자가 data/userid
노드에 쓸 수 있습니다 위. 이것을 원하는 모든 다른 노드에 적용 할 수 있습니다.
사용자 지정 사용자 특성 사용을 고려하십시오. admin.auth().setCustomUserClaims(uid, {admin: true})
https://firebase.google.com/docs/auth/admin/custom-claims
당신은 생성시에 사용자의 관리자 역할을 설정합니다 : 그것은 사용자가 모든 인증 요청에 관리자 인 경우 조회하는 실시간 데이터베이스를 사용하는 것보다 더 효율적이고 저렴
ID 토큰 새로 고침 후 클라이언트에 전달할 수 있습니다.
{
"rules": {
"adminContent": {
".read": "auth.token.admin === true",
".write": "auth.token.admin === true",
}
}
}
당신이 규칙을 사용하지 않거나 중포 기지 RTDB는 다음 중포 기지를 통해 ID 토큰에서 구문 분석하여 백엔드에 그것을 적용 할 경우
currentUser.getIdToken(true)
그럼 당신은 단순히 규칙을 적용 할 수 있습니다 Admin SDK :
// Verify the ID token first.
admin.auth().verifyIdToken(idToken).then((claims) => {
if (claims.admin === true) {
// Allow access to requested admin resource.
}
});
Firebase SDK가 필요합니다. Firebase 콘솔을 사용하지 않고 사용자를 편집하려면 백엔드가 아니십니까? – Ivan
현재 DB 구조와 보안 규칙을 제공 할 수 있습니까? – Orlandster
@Olandlandster DB 구조와 보안 규칙이 없으므로 사용자, 중재자 및 관리자와 같은 고유 한 스키마를 만들 수 있습니다. 그냥 기본적인 생각이야. – Ivan
Firebase에는 수퍼 관리자 개념이 없습니다. 모든 사용자는 모든 다른 모든 사용자와 같습니다. 하지만 구현 한 규칙에 따라 다른 사용자에게 Firebase에 대한 액세스 권한을 부여 할 수 있습니다. 예를 들어, 각 자식이 uid 키를 가지고 있고 각 uid 노드의 하위 노드에 해당 사용자에 대한 자세한 정보가있는 사용자 노드가 있다고 가정합니다./uid/user_type = "Super"노드를 가질 수 있습니다. 규칙을 사용하면 super_t 사용자 만 해당 노드에 액세스 할 수있게하는 "Super"user_type이없는 모든 사용자에 대한 액세스를 거부 할 수 있습니다. 나는 규칙을 좀더 완전히 이해하기 위해 파이어베이스 (Firebase)와 조금 협력 할 것을 제안한다. – Jay