2014-02-13 3 views
0

관리자 만 호출 할 수있는 방법이 있지만 Meteor.onStartup()에서도 실행하고 싶습니다. 어떻게해야합니까?Meteor 메소드에 대한 보안도 서버 실행을 허용하면서

"isAdmin": 관리자 인 사용자 문서에 true를 추가하고이 사용자가 실제로 관리자인지 확인하기 위해 관리자 만 호출 할 수있는 메소드 시작 부분에 if 문을 추가했습니다. 이 메서드는 onStartup에서이 메서드를 호출하기를 원한다는 점을 제외하고는 훌륭하게 작동하지만 onStartup 코드가 실행될 때 사용자가 없으므로 메서드를 호출 할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?

감사

답변

2

는 별도의 기능으로 공유 코드를 (즉, 시작 함수 방법과 모두 실행) 리팩터링하고, 두 곳 모두에서 사용 :

var sharedFunction = function() { 
    // do something 
}; 

Meteor.methods({ 
    "foo": function() { 
    if (Meteor.user().isAdmin) { 
     sharedFunction(); 
    } 
    } 
} 

Meteor.startup(sharedFunction); 
0

다음 중 하나를 수행 할 수 있습니다 리팩터링 사용자의 공통 코드를 함수에 넣고 사용자가 확인하는 if 문 내에서 메서드 내에서 호출하면

http://docs.meteor.com/#method_setUserId을 사용하여 관리자로 로그인 한 상태로 일시적으로 관리자를 설정 한 다음 호출이 완료된 후 로그 아웃 할 수 있습니다.

시스템/유지 관리 등의 계정을 만들 수 있습니다.

관련 문제