2014-07-09 3 views
4

누구나 간단히 설명해 주시겠습니까? 파문 구름 코드 내의 master key은 무엇입니까?Parse Cloud의 마스터 키는 무엇입니까?

(마스터 키를 사용하는) 최근에 구현 된 CC 기능이 다른 비 클라우드 코드 기능의 동작을 변경할 수 있습니까?

예를 들어, 현재 사용자가 다른 PFUser 개체를 관계에 추가하고 필요하면 삭제할 수있게하는 제대로 작동하는 솔루션이 있습니다. 이 시점까지는 PFUser currentUser을 현재 사용자로 작성하기 때문에 master key이 필요하지 않습니다. 나중에 PFUser 객체를 쓰고 싶은 또 다른 유형의 사용자 관계를 만들면 currentUser이 다른 PFUser 객체를 쓸 수 없으므로 master key을 사용해야합니다. 따라서이 문제를 처리하고 다른 사용자를 작성하기 위해 실제 currentUser에 합법성을 부여하는 클라우드 코드 파일을 생성합니다. 이제는 모든 것이 잘 작동합니다. 실제 사용자가 다른 사용자 객체를 작성하려고 할 때 오류가 발생하지 않습니다. 그러나 무언가가 일어났습니다. currentUser이 첫 번째 PFRelation (새 cc 함수 이전에도 작동 했음)에서 데이터를 삭제하려고 시도하면 그는 다른 사용자를 쓰려고 시도하기 전에 얻은 동일한 오류 ..user must be authenticated via logIn or signUp을 얻습니다.

우리는 마스터 키를 사용하기 때문에 기존/원래 보안 옵션 을 덮어 쓰고 다른 모든 기능을 구현해야합니다. 내가 맞습니까? 그렇다면 어떻게해야합니까? 또는 main.js cc 파일 내에 다른 제한을 설정하는 것이 가능하며 모든 "이전"기능은 마스터 키를 사용하는 것과 동일한 방식으로 작동합니다.

나에게 거대한 블랙홀이기 때문에 주제에 대한 정보는 정말 고맙겠습니다.

답변

9

마스터 키는 ACL 또는 클래스 기반 권한과 같은 모든 보안을 무시합니다. 그것은 "root"암호와 같습니다.

Parse.Cloud.useMasterKey();으로 현재 요청을 사용하도록 설정 한 후에 현재 요청에 대한 모든 방법이 마스터 키를 사용하므로 필요할 때만 호출해야합니다.

옵션을 개별 query/save/etc 메소드에 전달하여 선택적으로 사용할 수 있습니다. {) 다음 (기능 (사용자입니다. : 오히려 내가 (널 (null) {사실 useMasterKey})이`user.save을 할 수있는`;

query.find({ useMasterKey: true }).then(function(results) { // ... 

object.save(null, { useMasterKey: true }).then(// ... 
+0

그래서'Parse.Cloud.useMasterKey()를 사용할 필요가 없습니다 (이 오류 메시지는 전체 프로젝트에 영향을주지 않을 것입니까?) – rihe

+0

이 맞습니다! :) 모든 것을 가능케하는 것이 아니라 필요한 정확한 호출에 전달하는 것이 훨씬 낫습니다. – Fosco

+1

감사합니다. Fosco, 지금 시도해 보겠습니다. 근원에서 곧바로 도움을 얻는 것은 놀랍습니다. – rihe