활성 Meteor 로그인 토큰을 사용하고 meteor reset
과 함께 DB를 삭제하면 다시로드 할 때 응용 프로그램 페이지가 급히 멈 춥니 다. 페이지에로드가 계속 유지되는 것처럼 느껴지지만 페이지에서 아무 것도 할 수 없습니다. 브라우저 콘솔도 중단됩니다. Chrome과 Firefox에서 동일한 동작을 테스트했습니다. 그러나 앱 도메인의 캐시를 제거하려고하면 (브라우저 설정을 통해 dev 도구가 의식을 잃음) 모든 것이 정상적으로되고, 내 경로 설정에서 제공된대로 로그인 페이지로 리디렉션되고 브라우저 콘솔에 다음 메시지가 표시됩니다. : You've been logged out by the server. Please log in again
. 이 내 철 라우터 글로벌 onBeforeAction 후크입니다 :이 지역의 테스트를 수행 할 때보다 훨씬 더 자주 프로덕션 서버에서 발생하는 매우 이상한 재빠른 문제가 있음을뿐만 아니라 언급 할 필요가유성 재설정을 수행 할 때 로그인 한 사용자의 응용 프로그램 페이지가 고정됩니다.
Router.onBeforeAction(function() {
document.documentElement.className = 'gt-ie8 gt-ie9';
var currentUser = Meteor.user(),
currentRoute = this.route.getName(),
routeOptions = {},
userRoles,
userCompany, userTeam,
allowedRoutes;
// prevent not logged in user from visiting the app
// console.log(this.next);
if (!currentUser) {
this.redirect('login');
// return;
} else {
userRoles = currentUser.roles;
userRoles = userRoles.length ? userRoles : ['member'];
userCompany = currentUser.companyId || null;
userTeam = currentUser.teamId || null;
// get current user allowed routes (for highest role)
allowedRoutes = _.filter(SW.roles, function (appRoute, index) {
return userRoles.indexOf(index) > -1;
});
allowedRoutes = allowedRoutes && allowedRoutes.length ? allowedRoutes[0].routes : [];
// if not all routes are allowed
if (allowedRoutes.indexOf('*') === -1) {
// restrict if route is not allowed
if (!allowedRoutes.length || allowedRoutes.indexOf(currentRoute) === -1) {
this.redirect('member.self');
}
}
}
this.next();
}, {
except: ['enroll', 'login', 'logout']
});
.
프로덕션 서버에서'meteor reset'을 사용하고 있습니까? 문제는 Meteor 서버를 종료하고 모든 사용자의 연결을 끊는 것입니다. 코드를 업데이트하고 Meteor가 정상적으로 다시로드되도록하려면 핫 리로드가 시간 초과되지 않는 한 이런 일이 발생하지 않아야합니다. – sbking
@sbking 나는'meteor reset'을 로컬로 사용하고 있으며,이 경우 시간이 흐른다. 프로덕션 환경에서는 배포 후 데이터베이스를 삭제하는 스크립트가 있지만 더 자주 나타나는 경향이 있습니다. 몇 가지 변경 사항을 수행 한 후에 데이터베이스 삭제를 수행해야하며 여기에서 문제가 발생합니다. – evenfrost