액세스를 제한하려는 MeteorJs 앱에 다운로드 경로가 있습니다. 경로 코드는 다음과 같습니다.Meteor JS (Iron Router) - 서버 경로에 대한 액세스 제한
Router.route("/download-data", function() {
var data = Meteor.users.find({ "profile.user_type": "employee" }).fetch();
var fields = [...fields];
var title = "Employee - Users";
var file = Excel.export(title, fields, data);
var headers = {
"Content-type": "application/vnd.openxmlformats",
"Content-Disposition": "attachment; filename=" + title + ".xlsx"
};
this.response.writeHead(200, headers);
this.response.end(file, "binary");
},
{ where: "server" }
);
경로가 자동으로 파일을 다운로드합니다. 현재 작동하지만 경로에 대한 액세스를 제한하려고합니다. 관리자 만 다운로드 할 수 있기를 바랍니다.
나는
Router.onBeforeAction(
function() {
//using alanning:roles
if(Roles.userIsInRole(this.userId, "admin"){
console.log('message') //testing
}
},
{
only: ["downloadData"]
}
);
다음과 같은 onBeforeAction
후크를 만든 및 onBeforeAcion
후크 영향
내가 눈치도 this.userId
도를 고려하지 않습니다
//code above
this.response.writeHead(200, headers);
this.response.end(file, "binary");
},
{ where: "server", name: "downloadData" }
);
아래로 내 경로 이름 Meteor.userId
경로에서 작동