firebase를 사용하여 간단한 채팅 응용 프로그램을 만들고 사용 가능한 보안 설정 문제가 발생했습니다.읽기 권한이있는 firebase 노드의 하위 노드를 제외합니다.
이 응용 프로그램의 데이터 모델은 매우 간단하고
rooms:[
people:[
{
name: //string
status: // what the user is doing, typing, still connected etc.
secret: // the problem is with this
}
],
messages:[
{/* message to and payload*/}
]
]
을 다음과 같이 문제가 난 단지 [I] .people는 [j]가 업데이트 할 수 있도록 방을 생성 한 사용자를 원하는이다 그 사람의 상태.
하지만 I를 중포 기지에 새가되는
personRef.update({
'status': // newStatus
'secret': // used to authorize the update
})
이 가진 문제는 난 단지 비밀 기록을 확인하고 액세스 권한을 부여 할 수있는 방법을 찾을 수 있습니다을 다음과 같이 I 업데이트 기능을 사용할 수있을 것 동시에 사람들. 즉, 객실 [i] .people에있는 데이터를 가져올 수있는 사람이 필요합니다. 객실 [i] .people은 "fire"보안 규칙에 따라 ".read"를 가져야합니다. 그러나 이것은 모든 어린이에게 읽기 액세스 권한을 부여 할 것이고 방 안의 누구나 다른 사람의 업데이트 비밀을 볼 수있을 것입니다. 나는이 문제를 잘못 생각하고 있는가?
부모에게 읽기 액세스 권한을 부여하지만 일부 어린이는 결과에서 제외시킬 수 있습니까?
감사합니다.
당신이 당신이 그들을 인증하는 사람의 비밀을 사용하는 방법에 더 많은 비트를 확장 할 수의 (a에 저장 쿠키?) 또한, 어떻게 사용자를 로깅합니까? 간단한 로그인? – mimming
@JennyTong 나는 그 비밀을 JS에 저장하고있다. 그것의 단일 페이지 앱이다. 그렇습니다. 다시 떠난다면 다시 돌아와야한다는 뜻입니다. 쿠키가 비록 – Aaron